繁体   English   中英

壁球提交到一次提交

[英]Squash commits into one commit

我想将commiet压缩为一次提交。 这是例子。

git log --pretty=oneline

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

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

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

提前致谢。

您可以为此使用git rebase。 git rebase -i HEAD〜3并忽略中间的提交。

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

使用git rebase -i HEAD~3 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

上述情况的另一种选择是

git reset HEAD〜3

git添加

git提交

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM