【发布时间】:2011-08-01 21:30:56
【问题描述】:
从master 创建一个新分支,我们称之为test。
有几个开发人员要么提交到master,要么创建其他分支,然后合并到master。
假设test 的工作需要几天时间,而您希望通过master 内部的提交不断更新test。
我会从test 做git pull origin master。
问题 1:这是正确的方法吗?顺便说一句,其他开发人员可以轻松地处理相同的文件。
我在test 上的工作已完成,我准备将其合并回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 中发生的事情,然后我可以将它们合并回master,希望尽可能保持时间线线性。
【问题讨论】:
-
no.. rebase 永远不会覆盖,它只是试图实现更清晰的历史记录。通过将历史重新附加(或伪造)到主人的后期
-
rebase 不会覆盖你的提交。它撤消您的提交,将主分支中的提交应用到您的测试分支,然后将您的提交应用回测试。
-
如果我们没有master的写权限怎么办?有什么方法可以在功能分支上先发制人地解决冲突?我猜可能不是,因为历史可能已经分道扬镳了
-
为什么这个问题没有结束,因为它是基于意见的?请关闭这个问题。这就是堆栈溢出的主要目的,关闭问题
标签: git git-branch git-merge branching-and-merging