有一段时间,我以这种不同寻常的方式使用 Git:
git checkout -b feature123
- 微小的编辑、提交、重复
git checkout master
git merge --squash feature123
- 使用输出
git log --oneline
来填充提交消息,如下所示:
实现功能 123,对 brob 进行处理 长而详细的描述在这里。 f5d1b77 重构:提取方法 1c1346e 重构:将“A”重命名为“B” 63457de等 884fga1 浮球
我特别喜欢重构的工作模式,直到我想要创建的行为改变微不足道。在任何时候,如果我卡住了,我可以回滚到我最后一次好的提交。阅读我的提交历史很容易,因为行为更改和重构是分开的,并且行为更改简单明了。
我在微软的 Source Depot 工作时养成了这个习惯。我可以对一个分支进行一系列微小的提交,并将上游的分支合并为一个提交。我们有一个 gui 工具(类似于 gitk),它可以显示合并提交及其+旁边的 a。如果需要,我可以扩展并查看详细信息。非常好。我试图在 Git 中复制它。
如果我想深入了解细节,GitHub 会将这些提交 SHA 放入到各个提交的链接中。但是,它只对一些提交执行此操作,其余的不会成为链接。
这显然是在 Git 中一种不同寻常的工作方式。这些工具不太可能围绕它进行改进,其他程序员看到它时可能会感到困惑。
通常,在合并 Git 功能分支后,您可以将其删除 - 没有太多理由保留它。但是在这种情况下,如果我删除分支,单个提交将消失,并且您无法在 GitHub 中单击它们。所以那些旧的分支把东西弄得乱七八糟,即使它们没有用。我怎样才能摆脱它们?
也许一些变基的魔法咒语?