Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/24.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:在合并到master之前从master拉到topic分支?_Git_Branching And Merging - Fatal编程技术网

Git:在合并到master之前从master拉到topic分支?

Git:在合并到master之前从master拉到topic分支?,git,branching-and-merging,Git,Branching And Merging,假设我有一个主题分支fix bug-#25,它在几次提交之前已经从master中分离出来: o--o--o master \ o--o--o bug-fix-#25 我修好了程序错误> -Fix-Fix- 25代码>我修改了bug并想合并分支 进入master。我是否应该先签出master,将主题分支合并到master中 git checkout master git pull git merge bug-fix-#25 或者我应该先签出主题分支并从主分支中提取,然后再签出主分

假设我有一个主题分支
fix bug-#25
,它在几次提交之前已经从
master
中分离出来:

o--o--o master
   \
    o--o--o bug-fix-#25

我修好了程序错误> -Fix-Fix- 25代码>我修改了bug并想合并分支 进入

master
。我是否应该先签出master,将主题分支合并到master中

git checkout master
git pull
git merge bug-fix-#25
或者我应该先签出主题分支并从主分支中提取,然后再签出主分支并与主题分支合并

git checkout fix-bug-#25
git pull
git pull origin master
git checkout master
git pull
git merge fix-bug-#25

这样做的最佳方法是什么,以最大限度地减少合并冲突的数量?

tl;dr:Imho您应该将较小的更改合并到
master
中,但在主题分支上完成较大的更改。


这是政策、品味和环境的问题

我真的不喜欢太多的合并提交,这就是为什么我会选择第一条路线。(我也
git-pull--rebase
,因为这是另一回事。)确实,您应该测试
master
是否仍能像前面提到的那样使用您的修复程序(尽管这也是一个政策问题),但也可以在
master
上完成。如果修复有小问题,可以在合并前重置为,修复分支并再次合并


但是,如果修复有大问题,例如,因为
master
在主题分支上引入了很多更改,并且需要进行大量工作/提交才能修复,我会首先将
master
合并到主题分支中。这有助于保持
master
干净。

确保您的bug修复程序仍然适用于
master
上当前不在功能/主题分支中的新代码可能很有价值,在这种情况下,您可以使用第二种方法,插入“测试”在
git pull origin master
git checkout master
之间进行步进。我认为这两种方法都不会减少合并冲突的数量,因为当您将分支合并到
master
(第一种方法)或将
origin/master
拉入分支(第二种方法)时,冲突就会得到解决。