假设你有这个:
master: o--o--o
development: `o--o--o
Run Code Online (Sandbox Code Playgroud)
我想将更改合并为一次提交(避免沿途的所有垃圾提交):
git checkout master
git merge --squash development
Run Code Online (Sandbox Code Playgroud)
但是github网页显示了这个:
master: o--o--o---------o
development: `o--o--o
Run Code Online (Sandbox Code Playgroud)
你应该怎么做才能显示你的期望,即:
master: o--o--o---------o
development: `o--o--o’
Run Code Online (Sandbox Code Playgroud)
对于最后一个图,您可以使用以下命令:
git merge --no-ff
git branch -d development
master: o--o--o---------o
`o--o--o’
Run Code Online (Sandbox Code Playgroud)
你告诉git创建一个合并提交,即使合并的分支是快进的,即master的最后一次提交是合并分支的直接祖先.
请注意,"垃圾提交"不会被删除,但除非您有充分的理由,否则您应该保持历史记录的原样.压缩提交会使您难以浏览历史记录.
如果您觉得您的开发分支历史记录中充满了废话,您还可以在合并之前使用交互式rebase重写它.
git checkout developement
git rebase -i master
Run Code Online (Sandbox Code Playgroud)
您将能够选择,编辑,重新排序,压缩或丢弃提交并重写您的分支历史记录.完成后,使用经典合并(根据需要使用或不使用--no-ff).
| 归档时间: |
|
| 查看次数: |
572 次 |
| 最近记录: |