我创建了一个分支来尝试一种不同的方法,并且它工作,所以我想将“Farmcrops”分支合并到“Master”中以保留这些更改,但继续“Farmcrops”分支以探索另一种可能性。这样,如果这个最新的变化不起作用,我可以回到“主”,这将包括第一轮变更。如何将分支合并到主分支中,但继续在分支上工作?
我该怎么做?
我创建了一个分支来尝试一种不同的方法,并且它工作,所以我想将“Farmcrops”分支合并到“Master”中以保留这些更改,但继续“Farmcrops”分支以探索另一种可能性。这样,如果这个最新的变化不起作用,我可以回到“主”,这将包括第一轮变更。如何将分支合并到主分支中,但继续在分支上工作?
我该怎么做?
下面是这个过程中你正在寻找:
git checkout master
git merge Farmcrops
git push origin master
git branch -d Farmcrops
git checkout master
git checkout -b Farmcrops
Farmcrops
您提交...分行只是指针,它很容易创建/删除一个分支,如果你的分支Farmcrops
不会在远程存储库上推送,它绝对没有依赖关系。您可以在合并后将其删除,并从主服务器重新创建它。
希望这会帮助你。
尽管如此,您不应该将'Farmcrops'直接合并到'master'中。先将'master'合并到'Farmcrops'中,检查一切正常,然后才将'Farmcrops'合并到'master'中。 – Jubobs 2014-09-24 19:31:06
@Jubobs感谢你的建议,我从来没有尝试过这种方法。但是合并行为是在本地完成的,你有足够的时间来验证新版本,测试它并确保一切正常,不是吗?这似乎是一个无用的步骤,先按照您的建议进行第一次合并 – 2014-09-24 19:34:47
即使所有东西都是本地的,第一次合并也是有用的,因为它促进了隔离:它为您节省了在master上创建“坏”提交的风险,必须将'master'重置为它的父对象之一,或者还原'master'上的最后一个提交。这是一个安全网。 – Jubobs 2014-09-24 19:36:39
在下面的链接中,介绍了如何创建修补程序分支,进行更改并将其合并到主服务器。合并后,只有区别,修复分支被删除。
只需使用Farmcrops作为分支名称,合并后不要删除分支。
GIT-SCM: Basic Branching and Merging
步骤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: Rebase
git rebase Farmcrops
如果我理解正确的,你从
-- o -- o -- o [master]
\
o -- o [Farmcrops]
开始你不应该直接合并到Farmcrops
master
,因为你运行的,按照惯例,应该是打破了代码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]
现在,再次检查了Farmcrops
,继续实验,就更加的提交,等等。 ..
-- o -- o -- o
\ \
o -- o -- o [master]
\
o -- o -- o [HEAD -> Farmcrops]
如果你总是可以依傍master
(现在包含“第一轮的变化”,因为你把它)你关于Farmcrops
的新实验并没有那么好。
关于此的视觉效果非常有帮助。感谢您抽出宝贵时间。 – 2018-02-15 01:09:14
新的探索仍然基于我对cropcarms改变农作物,所以我继续使用该分支是有意义的,但如果它更容易在git中合并和分支,我可以做到这一点。 – jgravois 2014-09-24 19:21:56