git - 如何安全地将 Git 分支 merge 到 master 中?

标签 git git-branch git-merge branching-and-merging

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 - Rebasinggit-ready: Intro into rebasing进行一些描述。这是一个很酷的功能

关于git - 如何安全地将 Git 分支 merge 到 master 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5601931/

相关文章:

Git 没有在当前本地分支旁边显示星号

git - 防止修改 GitHub 中主分支上的文件

git - 为什么我不必在 git merge 之后提交

针对存储的 Git diff

git - 在 Git 存储库中查找早于特定日期的文件

git - git diff 是比较索引和工作副本还是最后一次提交和工作副本?

git - 如何显示分支无法访问的所有标记提交?

android - 版本控制可以忽略Android中的bin文件夹吗?

git - 如何在运行 git filter-branch 后删除旧的历史记录?

git - Bitbucket - 修复 merge 冲突