Git 如何处理多个进度承诺
我喜欢经常提交代码的小部分和逻辑部分。如果我正在开发一个大型功能(2周以上),将有许多提交,例如:Git 如何处理多个进度承诺,git,github,version-control,squash,git-squash,Git,Github,Version Control,Squash,Git Squash,我喜欢经常提交代码的小部分和逻辑部分。如果我正在开发一个大型功能(2周以上),将有许多提交,例如: 分页菜单控制器工作 XYZ中的进度(在一天结束时保存工作,以便在笔记本电脑丢失时保存工作) 在功能的末尾,有很多提交,我担心我正在污染提交历史。我曾经考虑过Git squash,但一旦您拉入更新,或者推到分支后,它就不起作用了 我正在考虑尝试更少和更大的提交,在推到我的fork特性分支之前,在小提交上使用本地挤压。然而,这似乎会妨碍我想要的详细提交历史记录 这里最好的解决方案是什么?即使您已将
- 分页菜单控制器工作
- XYZ中的进度(在一天结束时保存工作,以便在笔记本电脑丢失时保存工作)
这里最好的解决方案是什么?即使您已将分支推送到远程,您仍然可以压缩本地提交,然后强制推送到远程 1.壁球比赛 要压缩分支上的提交,可以使用
git-rebase-i branchname~n
。而n
是要开始挤压的提交量
例如,如果需要将功能
分支(E
、F
、G
和H
上的提交挤压到提交,如下图所示
A---B---C---D develop
\
E---F---G---H feature
您可以使用git rebase-i功能~4,然后在交互式窗口中,将提交显示为:
pick E
pick F
pick G
pick H
您可能需要将最后三次提交F
、G
和H
更改为挤压。输入i
要插入,请将其更改为:
pick E
squash F
squash G
squash H
然后输入Esc按钮并输入:wq
退出交互式窗口。而提交的历史将如下所示:
A---B---C---D develop
\
E' feature
2.将更改推送到远程
由于更改了分支上的历史记录,因此应该通过
git push -f
谢谢,这很有帮助。我现在应该能够避免拉入更新,挤压,然后强制推我的叉子。(我投了更高的票,但我的声誉太低,没有任何表现)