Bla*_*ers 22 git git-rebase git-remote
我与一个使用git进行源代码管理的小团队合作.最近,我们一直在做主题分支以跟踪功能,然后将它们合并到本地主服务器,然后将它们推送到远程服务器上的中央git存储库.当master中没有进行任何更改时,这很有用:我创建我的主题分支,提交它,将其合并到master中,然后推送.万岁.
但是,如果有人在我之前推送到原点,我的提交并不是快进的.因此,合并提交随之而来.当主题分支需要在本地与master合并以确保我的更改与现在的代码一起使用时,也会发生这种情况.因此,我们最终到处都是合并提交,以及与友谊手镯相媲美的git日志.
因此,变基是显而易见的选择.我想要的是:
我目前的做法如下:
git checkout master
git rebase master topic_1
git rebase topic_1 topic_2
git checkout master
git rebase topic_2
git branch -d topic_1 topic_2
Run Code Online (Sandbox Code Playgroud)
有更快的方法吗?
Mar*_*wen 37
你知道git pull --rebase吗?当你拉动它时,它会变形而不是合并,并防止合并提交污染你的历史.
您还可以将其设置为具有branch.<name>.rebase和branch.autosetuprebaseconfig选项的分支的默认行为.
Bla*_*ers 11
我发现,随着时间的推移,我最喜欢的解决方案是:
git checkout topic
# make [n] commits
git rebase -i HEAD~[n] #clean up time
git checkout master
git pull --rebase
git checkout topic
git rebase master
git checkout master
git merge topic
git push origin
Run Code Online (Sandbox Code Playgroud)
您也可以仅针对最新的 master 进行 rebase
git checkout topic_1
git rebase refs/remotes/origin/master
Run Code Online (Sandbox Code Playgroud)
这消除了拉取的需要(至少直到功能分支的 EOL 为止)。我们的流程使用 GitHub 拉取请求,因此我永远不需要在本地执行此操作。
| 归档时间: |
|
| 查看次数: |
15102 次 |
| 最近记录: |