假设我们提交了1-> 2-> 3-> 4-> 5 我认为历史可能太长了,我希望日志将1,2和3合并为一个,例如,1' - > 2> 3-> 4-> 5 我怎么能这样做,我应该使用rebase吗?似乎我无法在rebase之后推送到远程回购。 提前谢谢。
答案 0 :(得分:0)
首先进入交互式rebase模式
git rebase -i HEAD~5
(用你要压缩的提交数量替换为5)
然后按照git book Squashing commmits -part。
中的说明进行操作也可以进行一系列提交并压缩它们 使用交互式变基工具进行单次提交。剧本 在rebase消息中提供有用的指令:
# # Commands: # p, pick = use commit # e, edit = use commit, but stop for amending # s, squash = use commit, but meld into previous commit # # If you remove a line here THAT COMMIT WILL BE LOST. # However, if you remove everything, the rebase will be aborted. #
如果您指定“壁球”,而不是“选择”或“编辑”,则Git适用 这两者都会在它之前发生变化和变化并使你合并 提交消息在一起。所以,如果你想做一个提交 从这三个提交中,您可以使脚本看起来像这样:
pick f7f3f6d changed my name a bit squash 310154e updated README formatting and added blame squash a5f4a0d added cat-file
当你保存并退出编辑器时,Git会应用所有三个更改 然后让你回到编辑器中合并三个提交消息:
# This is a combination of 3 commits. # The first commit's message is: changed my name a bit # This is the 2nd commit message: updated README formatting and added blame # This is the 3rd commit message: added cat-file
当你保存它时,你有一个引入的单一提交 所有三个提交的更改。