Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git交换机基支路_Git_Git Rebase - Fatal编程技术网

Git交换机基支路

Git交换机基支路,git,git-rebase,Git,Git Rebase,我们的项目有两个主要分支机构。第一个是稳定的(当前成功的构建),第二个是不稳定的(实验)。我从“不稳定”分支出来,开始开发一个功能。我现在需要从stable获得最新更新 我想知道git rebase origin/stable是否是从stable获取最新更改的可行选项 是的,绝对可以,如果您愿意合并不稳定的更改,请在从稳定分支带来的提交之上逐个提交 通常,如果您只对不稳定分支进行了一些更改,特别是与对稳定分支所做的任何更改不同的文件中,那么重定基址相当简单。我相当喜欢它。现在,如果有大量更改,并

我们的项目有两个主要分支机构。第一个是稳定的(当前成功的构建),第二个是不稳定的(实验)。我从“不稳定”分支出来,开始开发一个功能。我现在需要从stable获得最新更新


我想知道git rebase origin/stable是否是从stable获取最新更改的可行选项

是的,绝对可以,如果您愿意合并不稳定的更改,请在从稳定分支带来的提交之上逐个提交


通常,如果您只对不稳定分支进行了一些更改,特别是与对稳定分支所做的任何更改不同的文件中,那么重定基址相当简单。我相当喜欢它。现在,如果有大量更改,并且两个分支对相同的文件都有更改,那么最好使用
git merge
。另外,如果您关心这些事情,
git-rebase
将更改您的历史记录,而
git-merge
则不会更改历史记录。

虽然您可以重新设置基础,但我强烈建议您进行合并,因为合并的过程会更简单,而且您的历史记录也会更改,除非您只对您的私有分支进行了少量提交


**编辑:刚刚意识到:不。你不能重新设置基址,因为这会重复
不稳定
上的提交,一旦你以后将你的工作与
不稳定
稳定
合并,就会造成可怕的混乱。

git fetch
然后
git merge
就是实现这一点的方法。由于您自己在另一个分支上,所以可以执行
git pull
,然后执行
git merge
。这将使您的分支能够干净地合并回稳定的分支(在您修复任何冲突之后)

要做到这一点,
git checkout stable
然后
git merge unstable
然后当您高兴时
git推原始稳定


如果你能做一些非常酷的事情,比如在你改变事情之前从一个时间点开始从稳定状态合并你的代码,一次只添加一个提交。这对于远程工作(不需要访问主repo)来说非常方便,因为您希望使用希望干净的补丁重新获得代码。在您的情况下,我认为您希望分支中的
fetch
merge
。然后,当你高兴时,你可以合并回稳定状态

检查这篇文章:我从不稳定创建了一个分支,现在想合并到稳定。在这种情况下,我希望git merge是个好主意。
git merge
可能确实是个好主意,但您询问了
git rebase
是否可行。这是一个可行的选择,取决于你的环境和你想要什么。谢天谢地,
git-rebase
比这更聪明。如果一个提交被复制,第二次应用它时,它会被跳过,因为没有什么事情要做。不,那不是真的。由于他将在
stable
上移动的提交不属于那里,因此他必须在重基期间解决冲突,这将破坏
git重基
重复检测,因为它与补丁ID一起工作。但这甚至无关紧要,因为可以假设分支不会再次被重定基址,而是在那里的工作完成后被合并,然后您就保证了重复提交。