git-如何将分支合并到master,但继续在分支上工作?

我创建了一个分支,尝试使用另一种方法,该方法起作用了,因此我想将“ Farmcrops”分支合并到“ Master”中以保留这些更改,但是继续“ Farmcrops”分支以探索另一种可能性。 这样,如果最新更改不起作用,我可以恢复为“ Master”(现在包括第一轮更改)。

我怎样才能做到这一点?

jgravois asked 2020-07-31T13:47:48Z
3个解决方案
62 votes

如果我理解正确,那么您是从

-- o -- o -- o [master]
    \
     o -- o [Farmcrops]

您不应该将master直接合并到Farmcrops中,因为冒着破坏master中代码的风险,按照惯例,该代码应该更稳定。 相反,请签出Farmcrops,然后将master合并到其中。

git checkout Farmcrops
git merge master

然后你会得到

-- o -- o -- o [master]
    \         \
     o -- o -- o [HEAD -> Farmcrops]

运行一些测试; 确保一切正常。 然后签出master并将Farmcrops合并到其中:

git checkout master
git merge Farmcrops

您的仓库将如下所示:

-- o -- o -- o
    \         \
     o -- o -- o [HEAD -> master,Farmcrops]

现在再次检查master,继续进行实验,对其进行更多提交,等等。

-- o -- o -- o
    \         \
     o -- o -- o [master]
                \
                 o -- o -- o [HEAD -> Farmcrops]

如果您在Farmcrops上进行的新实验进展得不太顺利,则可以随时退回到master(正如您所说的那样,现在包含“第一轮更改”)。

jub0bs answered 2020-07-31T13:59:54Z
29 votes

这是您要寻找的过程:

  1. Farmcrops
  2. Farmcrops
  3. Farmcrops
  4. Farmcrops
  5. Farmcrops
  6. Farmcrops
  7. 在分支Farmcrops上继续提交...

分支只是指针,创建/删除分支非常容易,如果您的分支2990811020530230287616没有在远程存储库上推送,则绝对没有依赖关系。 您可以在合并后将其删除,然后从主数据库中重新创建它。

希望这会帮助你。

Joël Salamin answered 2020-07-31T13:59:06Z
1 votes

在下面的链接中,说明了如何创建修补程序分支,进行更改并将其合并到主服务器。 唯一的区别是,合并后删除了修补程序分支。

只需使用Farmcrops作为分支名称,并且合并后不要删除分支。

GIT-SCM:基本分支和合并

[STEP 1]创建分支并进行更改

$ git checkout Farmcrops
Switched to a new branch 'Farmcrops'
$ vim index.html
$ git commit -a -m 'fix the broken email address'
[Farmcrops 3a0874c] fix the broken email address
 1 files changed, 1 deletion(-)

[步骤2]然后,返回主分支并合并

$ git checkout master
$ git merge Farmcrops
Updating f42c576..3a0874c
Fast-forward
 README | 1 -
 1 file changed, 1 deletion(-)

并且,如果您想在同一分支上进行更多更改,请再次应用[步骤1]。

完成更改后,再次应用[步骤2]。

尽可能执行以下步骤。

完成此分支的工作后,即可将其删除。

$ git branch -d Farmcrops
Deleted branch Farmcrops (was 3a0874c).

NOT:建议不要合并,而建议合并GIT-SCM:重新设置基准

git rebase Farmcrops
wasabi answered 2020-07-31T14:00:53Z
translate from https://stackoverflow.com:/questions/26024586/how-can-i-merge-a-branch-into-master-but-continue-working-on-the-branch