我可以找到一些接近我想要的答案,但是我担心我对Git的经验不足以完全理解如何实现我想要的.
给定一个提交ABCDEFGHIJ的本地分支,我想将一些提交压缩在一起,以便最终得到相当于A-BCD-E-FGH-IJ的东西.
这可能吗?目的是在重新定位之后对本地分支执行此操作,但在合并回主分支之前,以便创建更简洁和信息丰富的历史记录.
cmb*_*ley 41
你可以这样做rebase.假设提交AJ位于branchname构建于其上的本地分支上master,您可以这样做:
git checkout branchname
git rebase -i master
Run Code Online (Sandbox Code Playgroud)
您将被阻止使用这样的交互式窗口:
pick A Commit message A
pick B Commit message B
pick C Commit message C
pick D Commit message D
pick E Commit message E
...
Run Code Online (Sandbox Code Playgroud)
交互式rebase为您的场景提供说明,因此您应该为C和D更改"选择"为"压缩"(对于G,H和J,相同):
pick A Commit message A
pick B Commit message B
squash C Commit message C
squash D Commit message D
pick E Commit message E
Run Code Online (Sandbox Code Playgroud)
这会将B,C和D压缩成单个提交,允许您更改提交消息.
如果您乐意使用B的提交消息,则可以使用"fixup"而不是"squash",并且不会提示您更新提交消息.
git log --oneline
git checkout your-branch
git rebase -i HEAD~3
Run Code Online (Sandbox Code Playgroud)
写下您的评论,然后 :wq(write and quit) 并按 Enter。
git log --oneline
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10340 次 |
| 最近记录: |