Git合并提交[重复]

Posted

技术标签:

【中文标题】Git合并提交[重复]【英文标题】:Git merge commits [duplicate] 【发布时间】:2011-06-23 15:12:56 【问题描述】:

我是 git 新手(非常喜欢它!)。在新分支中开发时,我不断提交应用程序的各种开发“状态”。现在我必须检查它以供审核,但不希望所有内容都进入不同的提交(不同的 cmets 和 id)。

如何像第一次一样推送所有更改?

【问题讨论】:

@Alex 可以关闭这个(4 年后?)但我的日期比我大一个月,有点不公平:) @Alex 听起来不错 :) 【参考方案1】:
git rebase -i HEAD~5

允许您以交互方式选择最后 5 个提交中的哪一个加入;在我的脑海中,它会用类似这样的东西打开编辑器

pick xxxx commit1
pick xxxx commit2
pick xxxx commit3
pick xxxx commit4
pick xxxx commit5

你把它改成

pick xxxx commit1
squash xxxx commit2
squash xxxx commit3
squash xxxx commit4
pick xxxx commit5

这导致留下两个提交:第一个合并了提交 1 - 4,而提交 5(最新的一个)被单独留下

【讨论】:

你的顺序倒过来了——提交是最旧的。 @jleedev +1 你是对的,修复它 谢谢! :) 实际上,我在第一次提交之前对提交进行了软重置,然后对所有更改进行了全新的提交,但我对我的解决方案不满意。感谢这个:)【参考方案2】:

我认为保留“微提交”是个好主意。您可以从您的功能之前的最后一次提交到当前 HEAD 进行比较,以查看您可以发送以供审查的整个差异。

【讨论】:

它更多是针对特定场景的事情;通常你会想要变基并使提交更合乎逻辑并摆脱“哎呀!”在发送补丁之前提交。 确实如此,但我不喜欢仅仅为了审查而将整个一周/一个月的开发压缩到一个提交中。我本人是--amend 的重度用户。 您可能都是对的,正如数学所说,需要针对特定​​场景。就我而言,我将其发送给其他人进行审查,而“备份”提交在那里没有多大意义:) 谢谢 是的。但是你不必向他们发送一个提交来审查。您可以向他们发送一系列提交 git diff start end 并要求他们审查整个事情。没有?

以上是关于Git合并提交[重复]的主要内容,如果未能解决你的问题,请参考以下文章

更改 git 合并分支冲突消息 [重复]

git - 回到某个提交 [重复]

无效 BFG 使用后 Git 合并重复

忽略或跳过 Git 上的某些提交 [重复]

git 因线上分支名重复导致无法拉取代码

签出旧提交并将其设为新提交 [重复]