我想将联盟压缩成一个提交。这是一个例子。
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]
提前致谢。
答案 0 :(得分:0)
你可以使用git rebase。 git rebase -i HEAD~3并忽略中间的提交。
检查http://git-scm.com/docs/git-rebase和git 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