Git rebase(合并壁球)我的function分支到另一个分支

我正在寻找一个git命令来帮助我的function分支,当他们准备进入主。 这个git命令会将我的分支上的所有更改压缩到master上的单个提交中。 我今天这样做:

git rebase origin/master git rebase -i HEAD~4 

4是承诺的数量。 但是,这需要我知道我有多less提交。 我今天通过运行:

 git log HEAD...origin/master 

然后计算提交。

我觉得应该有更好的方法来做到这一点。 或者这也是每个人都这么做的吗?

你所要做的就是:

 git checkout feature_branch git rebase master git checkout master git merge --squash feature_branch 

作为git merge --squash的文档 git merge --squash说:

产生工作树和索引状态,就好像一个真正的合并发生了(合并信息除外),但实际上并没有提交或移动HEAD,也没有logging$ GIT_DIR / MERGE_HEAD使下一个git commit命令创build一个合并承诺。 这使您可以在当前分支上创build一个单独的提交,其效果与合并另一个分支(或更多的章鱼)相同。

之后,你可以git commit已经上演的更改。

以下是我从大型团队工作的丰富经验中收集的信息:

 # Get latest from master git checkout master git pull --rebase # rebase master into your feature branch git checkout feature/my-feature git rebase master --preserve-merges # merge feature into master git checkout master # DO ONLY ONE of the 2 options below # if you only have one or (maybe) 2 commits in your feature branch git merge feature/my-feature # OR # this forces an empty merge commit (useful if we need to roll things back) git merge --no-ff feature/my-feature # if you use Github, this should also close the pull request git push origin master 

希望这可以帮助!

我想你正在寻找git merge --squash 。 它应该从您的function分支提交到主和承压,以便您可以创build一个单一的提交。