壁球投入一次提交

时间:2015-05-15 10:27:16

标签: git

我想将联盟压缩成一个提交。这是一个例子。

git log --pretty=oneline

c4101e...  removed conflict
04830f...  T2345 - [Bug fix1] 
16d19f...  T2272 - [Bug fix2]

我的要求是, 他将代码更改在 c4101e (最新提交)和 16d19f (第3次提交)中处理为一个。像这样

c4101e...  removed conflict and T2272 - [Bug fix2]
04830f...  T2345 - [Bug fix1]

提前致谢。

3 个答案:

答案 0 :(得分:0)

你可以使用git rebase。 git rebase -i HEAD~3并忽略中间的提交。

检查http://git-scm.com/docs/git-rebasegit rebase -i

答案 1 :(得分:0)

使用git rebase -i HEAD~3进行最后3次提交的互动式重新定位。它将为每个提交打开一行文本编辑器。然后,您可以根据需要对它们进行重新排序,并将pick命令更改为squash,以便将提交压缩到上一个。

当您打开文件时,它看起来像:

pick c4101e...  removed conflict
pick 04830f...  T2345 - [Bug fix1] 
pick 16d19f...  T2272 - [Bug fix2]

将其更改为:

pick c4101e...  removed conflict
squash 16d19f...  T2272 - [Bug fix2]
pick 04830f...  T2345 - [Bug fix1]

这将打开额外的文本编辑器,用于编辑压缩提交的提交消息。如果您只想使用第一次提交的提交消息,请使用fixup而不是squash

答案 2 :(得分:0)

上述案例的另一个选择是

git reset HEAD~3

git add

git commit