一段时间后删除一个Git分支,我曾在使用Git在这个不同寻常的方式:我如何使用`git的合并--squash`
git checkout -b feature123
- 微小的编辑,提交,重复
git checkout master
git merge --squash feature123
- 的
git log --oneline
使用输出来填充提交信息,像这样:
Implement feature 123, floobing the brob Long, detailed description here. f5d1b77 REFACTOR: Extract Method 1c1346e REFACTOR: Rename `A` to `B` 63457de etc. 884fga1 floob
我特别喜欢重构的工作模式,直到行为的改变,我想创建是微不足道的。在任何时候,如果我陷入困境,我可以回到我最后一次的良好承诺。阅读我的提交历史很容易,因为行为改变是分开的,行为改变是简单明了的。
我在使用Source Depot在Microsoft工作时捡到了这种习惯。我可以对一个分支进行一系列微小的提交,并将分支合并为一个提交。我们有一个gui工具(类似于gitk),它会显示合并提交,其旁边有一个+。如果我想要的话,我可以扩展并查看细节。非常好。我试图在Git中重复这一点。
如果我想深入细节,GitHub会让这些提交SHA进入单个提交的链接。但是,它只是对一些提交进行的,其余的不会成为链接。
这显然是在Git中工作的一个不寻常的方式。这些工具不太可能改进,其他程序员在看到它时可能会感到困惑。
通常,在合并Git特性分支之后,您可以将其删除 - 没有太多理由保留它。但在这种情况下,如果我删除分支,单个提交将消失,并且您无法在GitHub中单击它们。所以那些旧的分支混乱了事情,即使它们没有用处。 我该如何摆脱它们?
也许一些魔术咒语的咒语?
您可以使用'git tag tagname branchname'将一个标签放在您想摆脱的每个分支的末尾。这样他们仍然可用,但没有出现在分支机构名单中,也不会混淆主分支机构的直接历史。尽管如此,这可能仍然会妨碍您的工作,特别是如果您将标签用于其他事情。 – 2013-03-15 01:53:16