是否可以在与主服务器合并之前将分支上的提交压缩为单个提交?我认为这是一个相当普遍的情况,但也许我没有使用正确的搜索条件.
我将更详细地解释这个场景.通常,我希望在分支机构进行更改时进行许多本地提交,以确保我有一个全面的更改历史记录.但是一旦通过分支中的更改,当我合并到main时,我想将分支上的提交减少为单个,然后将其合并到main.我确实理解Git中的提交很便宜,但在某些情况下,我可能只是喜欢这样做.
* merge to main
|\
* | commit 2 on main
* | commit 1 on main
| * commit 2 on branch
| * commit 1 on branch
|/
* branch from main
Run Code Online (Sandbox Code Playgroud)
看起来像
* merge to main
|\
* | commit 2 on main
* | commit 1 on main
| * commit on branch (branch commits flattened to one)
|/
* branch from main
Run Code Online (Sandbox Code Playgroud)
对于git我是新手.如果我在使用条款时犯了错误,我会道歉.
tha*_*era 25
我建议学习使用交互式rebase,但如果它对你来说太复杂了,你可以简单地使用
git reset --soft <diverging-commit>
在不改变索引的情况下撤消所有提交到分歧点的提交,并且
git commit -s
对所有更改进行一次提交.
Fre*_*Foo 14
使用交互式变基.找到你的分支与master分离的提交(可以使用git merge-base;让我们调用commit <diverge>),然后
git rebase -i <diverge>
Run Code Online (Sandbox Code Playgroud)
弹出一个编辑器,允许您以交互方式重写历史记录.你想要压缩提交.
Tre*_*son 11
您还可以使用git merge --squash <branch>合并分支而不执行任何提交:
$ git checkout master
$ git merge --squash mybranch
...
Squash commit -- not updating HEAD
Automatic merge went well; stopped before committing as requested
$ git commit
Run Code Online (Sandbox Code Playgroud)
当然,如果你能提供帮助,你应该抵制这样做的冲动.看你不应该撒谎:git rebase,修正,壁球和其他谎言,讨论为什么.
| 归档时间: |
|
| 查看次数: |
21134 次 |
| 最近记录: |