从master
创建了一个新分支,我们称之为test
。
有几个开发人员要么提交到 master
,要么创建其他分支,然后 merge 到 master
。
假设 test
的工作需要几天时间,而您希望通过 master
中的提交不断更新 test
。
我会从 test
中执行 git pull origin master
。
问题 1:这是正确的方法吗?顺便说一句,其他开发人员可以很容易地处理与我处理过的相同文件。
我在 test
上的工作已经完成,我准备将它 merge 回 master
。以下是我能想到的两种方式:
答:
git checkout test
git pull origin master
git push origin test
git checkout master
git pull origin test
乙:
git checkout test
git pull origin master
git checkout master
git merge test
我没有使用 --rebase
因为据我了解,rebase 将从 master
获取更改并将我的更改叠加在其之上因此它可能会覆盖其他人的更改制作。
问题 2:这两种方法中哪一种是正确的?有什么区别?
所有这一切的目标是让我的 test
分支与 master
中发生的事情一起更新,稍后我可以将它们 merge 回 master
希望时间线尽可能保持线性。
最佳答案
我会怎么做
git checkout master
git pull origin master
git merge test
git push origin master
如果我有一个来自远程分支的本地分支,我不愿意将除此分支以外的其他分支与远程分支 merge 。此外,我不会推送我的更改,直到我对我想要推送的内容感到满意为止,而且我根本不会推送仅适用于我和我的本地存储库的内容。在您的描述中,test
似乎只适合您?所以没有理由发布它。
git 总是试图尊重您和其他人的更改,--rebase
也会如此。我不认为我可以适本地解释它,所以看看 the Git book - Rebasing或 git-ready: Intro into rebasing进行一些描述。这是一个很酷的功能
关于git - 如何安全地将 Git 分支 merge 到 master 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5601931/