I made a show shuffler that shuffles shows in ordera year agohttp://git.tgwil.net/util/sortashuffle/Tristan Williams 进行了多次提交,以改进指令并遵循 PEP 8 规范。多次提交强调了在提交前进行测试的重要性。重构和代码风格一致性更新是近期变更的一部分。修复了 _PLAYLIST_INDEX.txt 文件以确保使用 UTF-8 编码。可通过 git://git.tgwil.net/util/sortashuffle 或 git@git.tgwil.net:util/sortashuffle 克隆该代码库。
Fix U.S. National Securitya year agohttps://github.com/signalapp/Signal-iOS/pull/6017由于没有代码更改,建议无法作为单一提交应用。必须打开拉取请求才能应用建议。每行只能批量处理一个建议。更改无法应用于已删除的行或过时的建议。Signal的通信安全公告横幅提醒用户不要讨论机密信息。拉取请求包含贡献者核对表和脚注。更新内容为愚人节玩笑,无意冒犯或违反安全规定。
Show HN: Refactored – personal time tracker with Gita year agohttps://github.com/thisdougb/git-time-hooksGit钩子用于自动跟踪功能开发所花费的时间合并功能分支时自动添加时间跟踪的提交信息时间数据可用于推断流程/代码中的熵值示例提交信息包含在功能分支上花费的时间钩子可以手动安装或通过Makefile安装Makefile自动化从GitHub仓库下载和设置钩子重构后包含合并提交信息中的时间数据,实现更简洁
Git's initial commita year agohttps://github.com/git/git/commit/e83c5163316f89bfbde7d9ab23ca2e25604af290Git被描述为一个‘愚蠢的内容跟踪器’,它能高效管理目录内容。‘git’这个名字有多种解读方式:可以只是简单的三个字母组合,也可以代表‘全球信息追踪器’,或者当它出错时被戏称为‘该死的愚蠢垃圾车’。Git主要基于两大抽象概念运行:‘对象数据库’和‘当前目录缓存’。对象数据库是一个内容可寻址的对象集合,每个对象通过其内容的SHA1哈希值进行标识。数据库中的对象经过zlib压缩,并包含类型标签和大小信息。对象类型主要有:‘blob’(二进制数据)、‘tree’(目录结构)和‘changeset’(变更历史)。变更集引入了历史概念,会链接到父变更集并包含注释,但本身不包含信任或有效性机制。Git的信任机制来自外部数字签名,因为Git本身仅确保内容完整性。‘当前目录缓存’(.dircache/index)是一个二进制文件,能高效表示特定时刻的目录状态。目录缓存既可重新生成其缓存的完整状态,也能高效发现缓存状态与当前状态之间的差异。
20 years of Gita year agohttps://blog.gitbutler.com/20-years-of-git/20年前,林纳斯·托瓦兹完成了对Git的首次代码提交,这个个人项目由此蜕变为占主导地位的版本控制系统。Git的诞生是为了改进Linux内核社区使用的'补丁包与压缩包'工作流,解决了当时版本控制系统的局限性。首次提交包含用于高效追踪目录内容的底层工具,为Git基于内容寻址的存储机制奠定了基础。斯科特·查康在Reactrix公司早期将Git用于内容分发,这促使他为Git文档和社区资源建设做出重大贡献。随着更多用户友好命令被集成到核心功能中,Git从后端工具集逐步发展为成熟的版本控制系统。'git log'和'git rebase'等关键命令最初是简单脚本,后来为提升性能与可移植性改用C语言重写。Git术语'章鱼合并'(octopus merge)启发了GitHub的章鱼猫(Octocat)吉祥物,该形象源自对Git相关视觉元素的搜寻。Git至今仍被创新性使用,例如GitButler就利用Git的数据库特性来实现项目历史追踪功能。
Show HN: Git Game Show – Multiplayer Game in Your Repoa year agohttps://justinpaulson.github.io/git_game_show/Git游戏秀将Git提交历史变成多人趣味问答游戏支持创建会话并邀请远程玩家参与,适合团队建设活动提供多种基于提交历史的小游戏,如补全提交信息或按时间排序提交记录包含多种题型:识别提交作者、分支或相关文件等可通过Ruby gem轻松安装,支持全局命令访问内置网络功能,完美支持分布式团队协作
Git-withme – Peer-to-peer, encrypted, ephemeral Git collaboration (Git daemon wa year agohttps://git.sr.ht/~meejah/git-withmeGit WithMe 允许在没有公共服务器或现有托管服务的情况下协作处理Git仓库它采用一次性安全码和Dilated Magic Wormhole通道建立直接点对点连接托管仓库只需运行`git withme`生成邀请码供同伴使用同伴通过`git withme accept <代码>`连接即可直接开始协作连接采用端到端加密,只要双方终端保持运行就会持续有效恶意攻击者仅有一次猜测机会破解代码,确保安全性该工具是Python编写的Git扩展,需要通过pip或虚拟环境安装
Git turns 20: A Q&A with Linus Torvaldsa year agohttps://github.blog/open-source/git/git-turns-20-a-qa-with-linus-torvalds/Git由Linus Torvalds于2005年开发,因与BitKeeper的许可协议分歧而成为其替代品Torvalds仅用10天就开发出Git,专注于性能表现和去中心化设计Git早期版本虽然粗糙,但已优于CVS等现有工具,尽管最初存在易用性争议分布式架构和采用SHA-1哈希值校验数据完整性是其核心设计理念Git在新手开发者中迅速流行,特别是那些没有版本控制系统经验的人群Torvalds仅维护Git数月后就将项目移交给Junio Hamano,后者领导至今Git的成功源于其简洁性、可扩展性以及极佳的协作支持Torvalds本人仍保持基础使用习惯,主要使用commit/merge/log等基础命令尽管占据主导地位,Git在处理大型单体仓库等非典型场景时仍面临挑战Torvalds对Git设计无憾,虽从未刻意将其作为遗产,但珍视其行业影响
Linus Torvalds built Git in 10 days – and never imagined it would last 20 yearsa year agohttps://www.zdnet.com/article/linus-torvalds-built-git-in-10-days-and-never-imag...Linus Torvalds 在2005年仅用10天就创建了Git,作为BitKeeper的开源替代品。在Git之前,Torvalds使用手动方法和早期版本控制系统如RCS、CVS和SVN,这些方法效率低下。BitKeeper是一款专有SCM工具,最初用于Linux开发,但因许可冲突问题而引发争议。Andrew Tridgell对BitKeeper的反向工程导致其免费版本被撤回,促使Torvalds开发Git。Git的分布式设计彻底改变了版本控制,使开发者能高效协作与同步。尽管初期存在质疑,Git如今占据SCM市场87%以上的份额,并成为开源开发的核心工具。Torvalds为Git感到自豪,因为它证明了自己不仅能复刻现有系统(如Unix),还能实现创新。Git因其信任框架受到赞誉,通过分支和提交记录开发者的意图。Git持续塑造软件开发模式,甚至通过由其管理的项目影响着非编程人员。
How to write a Git commit message (2014)a year agohttps://cbea.ms/git-commit/良好的提交信息对于高效协作和未来参考至关重要。糟糕的提交信息会导致理解变更时产生混淆和低效。结构良好的提交信息能增强git log、blame和rebase等工具的作用。优秀的Git提交信息应遵循七条规则:1. 用空行分隔主题与正文。2. 主题行不超过50个字符。3. 主题行首字母大写。4. 主题行结尾不加句号。5. 主题行使用祈使语气。6. 正文每行限72字符换行。7. 正文应解释「为什么」而非「如何」实现变更。提交信息应聚焦变更动机,而非仅描述实现方式。使用命令行操作Git比依赖IDE更强大。阅读《Pro Git》等资源能显著提升Git技能。
Tired of Oh-my-ZSH bloat, built my own minimal dotfiles with just what I needa year agohttps://github.com/cassiozen/dotfilesMac OS 轻量级、无依赖的配置方案。极简提示符带GIT信息:显示当前分支、已暂存(+)与未暂存(*)的变更。增强补全:支持带菜单选择的Tab补全功能。箭头键历史搜索:输入命令前缀后,使用↑/↓键搜索历史记录。目录导航:提供便捷别名(l, la)快速列目录,及高效路径跳转快捷方式。常用命令别名(ci, co, st)。更优日志:git lol 和 git graph 命令。分支管理:git publish, git unpublish, git cleanup 命令集。体验优化:交互式变基自动暂存、默认分支设为main、全局gitignore配置。警告:使用前请检查并更新配置文件。克隆仓库后运行 bootstrap.sh 完成安装。更新方式:在.dotfiles目录下运行 bootstrap.sh。自定义配置可写入 ~/.gitconfig.local 和 ~/.zshrc.local 文件。
Commit signing in 2023 is kinda wacka year agohttps://lobi.to/writes/wacksigning/作者表达了对传统Git提交签名方式的怀疑,认为其过于复杂且不实用。文章指出长期加密身份存在的问题,如密钥泄露/丢失风险以及维护难度。分析了当前GPG、SSH和S/MIME等签名方案的局限性,特别是撤销与验证方面的不足。介绍了Gitsign(Sigstore项目)和OpenPubkey等新兴解决方案,强调其短期身份和透明日志特性。详细说明Gitsign如何通过OpenID Connect进行身份验证,并将签名信息存入透明日志的创新机制。提及OpenPubkey作为复用OpenID Connect身份实现加密功能的草案标准,同时也指出其存在挑战。作者坦言目前暂未实施提交签名,但表示愿意在Gitsign更普及时采用该方案。最后强调SSH密钥限制和分支保护规则等现有安全措施的重要性。
Show HN: Empty Enter Expander – Type less in the terminal with this toola year agohttps://github.com/waszabi/empty-enter-expanderEmpty Enter Expander 是一个用于 zsh 的工具,能以最少的按键输入命令。命令存储在模块目录中,以小写命名的文件和文件夹作为快捷方式。通过在空命令上按 Enter 键激活,随后输入特定按键序列选择不同命令。示例命令包括导航到项目文件夹、查看 git 状态和查看 git 日志。命令存储在结构化的模块目录中,例如 ~/Tools/expander-example-module。提供了 git log 命令的示例脚本,存储在特定路径下,并使用小写命名作为快捷方式。配置包括设置 HIST_IGNORE_SPACE、模块路径以及在 ~/.zprofile 中绑定按键。配置完成后,打开新的 shell 即可激活扩展器,列出并插入存储的命令。
Radicle 1.1: a sovereign, P2P code forge built on Gita year agohttps://radicle.xyz/2024/12/05/radicle-1.1.htmlRadicle 1.1版本发布,包含8位贡献者的47次提交。包含数据库迁移至COB数据库版本2的更新。新增CLI命令和标志以增强功能。Git远程助手和协作对象(COBs)功能改进。节点和协议更新以提升性能与安全性。提供完整更新日志及详细提交历史记录。包含各平台下载文件的校验和信息。
"Git rerere", a bit of a hidden featurea year agohttps://git-scm.com/book/en/v2/Git-Tools-RerereGit的rerere(重用已记录的解决方案)功能可以自动解决之前已解决过的合并冲突。可以通过`git config --global rerere.enabled true`全局启用rerere功能。Rerere对于长期存在的分支、频繁变基以及测试合并而不污染历史记录非常有用。像`git rerere status`和`git rerere diff`这样的命令可以帮助跟踪和查看冲突解决方案。如果在之前解决过相同的冲突,rerere可以在变基或合并期间自动解决冲突。
Linus Torvalds Reflects on 20 Years of Gita year agohttps://thenewstack.io/linus-torvalds-reflects-on-20-years-of-git/林纳斯·托瓦兹于2005年4月7日创建Git时,只是为了解决自己的问题,并未预料它会主导源代码管理领域。当网络开发者广泛采用Git后,其人气激增,形成了新项目默认使用Git以实现兼容性的网络效应。托瓦兹为Git设定了核心目标:高性能、数据零损坏、支持分布式工作流,使其既简洁又高效。他对从SHA-1过渡到SHA-256引发的代码库动荡表示遗憾,认为这一改动基本没有必要。托瓦兹将Git的长期成功归功于维护者滨野纯,正是他让Git对普通用户更加友好。尽管Git影响深远,托瓦兹本人仍是个轻度用户,日常主要依赖五个基本Git命令。他希望未来代码托管平台能更好地统一缺陷追踪功能。托瓦兹暂无新重大项目计划,更倾向让他人先解决问题,除非自己产生新的创作需求。
Converting a Git repo from tabs to spaces (2016)a year agohttps://eev.ee/blog/2016/06/04/converting-a-git-repo-from-tabs-to-spaces/作者在2013年将Yelp的Python代码库从制表符统一转换为四个空格关键步骤包括:修复不一致的缩进、部署Git过滤器、选择低活跃期执行转换通过Git的clean/smudge双过滤器机制确保新提交不会引入制表符调整合并与变基策略以适应空白字符转换,旧分支和暂存区处理较为复杂转换导致Git状态检查变慢等轻微问题,但总体可控作者建议最终通过预提交钩子彻底禁止制表符作为收尾措施
Git Commands That Cover 90% of a Developer's Daily Workflowa year agohttps://jsdev.space/15-git-commands/git init - 在当前文件夹中创建一个新的Git仓库。git clone - 创建远程仓库的本地副本。git status - 显示工作目录和暂存区的当前状态。git add - 将文件添加到暂存区准备提交。git commit - 用一条消息保存暂存更改的快照。git diff - 显示工作目录与暂存区或提交之间的差异。git log - 显示提交历史记录。git reset - 重置暂存区或将HEAD移动到不同的提交。git checkout - 切换分支或恢复文件。git branch - 列出、创建或删除分支。git merge - 将一个分支的更改合并到另一个分支。git pull - 从远程仓库下载更改并本地合并。git push - 将本地提交上传到远程仓库。git stash - 临时保存尚未准备好提交的更改。git remote - 管理远程仓库。
Useful Gita year agohttps://amirghofran.com/today-i-learned/useful-git/高级Git命令与实践入门使用`git switch`进行现代化分支切换通过`git merge`合并分支及解决冲突用`git rebase`实现线性历史记录使用`--ours`和`--theirs`解决合并冲突通过`git stash`临时保存更改用`git reset`撤销更改(软重置与硬重置选项)不重写历史记录的`git revert`回退提交用`git cherry-pick`跨分支应用特定提交通过`git bisect`定位引入错误的提交压缩提交记录以保持PR历史整洁使用`git worktree`同时管理多分支用`git tag`标记重要提交(如版本发布)通过`git commit --amend`修正最新提交
Browse-at-remote: browse remote code forges with Emacsa year agohttps://github.com/rmuslimov/browse-at-remote“browse-at-remote”包支持从Emacs直接打开GitHub/GitLab/Bitbucket链接支持多种Emacs缓冲区:文件、dired、magit-mode、vc-annotate等可通过Cask、Guix或手动配置.emacs安装快捷键绑定:C-c g g 快速访问支持多种远程仓库类型(GitHub、GitLab、Bitbucket等)可通过git配置或Emacs设置自定义远程类型映射提供禁用URL行号的可选项支持通过SSH配置解析自定义域名允许通过PR添加自定义远程类型包含多位开发者的功能贡献提供bar-browse、bar-to-clipboard等函数