2011-03-09 77 views
1

我对Git来说是新手,最近从GitHub中分出了一个项目,做了一些更改并向GutHub提交了一个pull请求。在Git Pull Request后保持本地分支工作

我所做的更改现在正在我正在开发的应用程序中使用,所以我需要在本地为了让我的应用程序运行。

但是我确实想继续添加功能/更改到GitHub项目,方法是分叉另一个分支并在那里进行更改,然后再执行另一个请求,等等。

是否有办法保留我在第一个分支中做出的更改(之前以及是否由项目开发人员将它们合并到主数据库中),并继续向第二个分支中添加功能,然后执行第二个请求将仅包含第二个分支中为拉取请求而进行的更改。然后这个过程会重复第三次和后续的分叉。

但是在本地我会从第一个分支开始进行所有更改,以便我可以继续测试我的应用程序,以防止我正在进行的所有最新更改。

回答

0

如果你有两个分支,让我们称他们为first-fork(您已经提交了拉要求),以及second-fork(其中有一些其他的事情,提交上游与否),你想要做的是什么保持它们的独特性,以缓解上游拉动。我想要做的是将第三个本地分支称为build,作为您正在构建和运行的软件的版本,您可以合并first-fork,然后反复合并second-fork,以添加您想要的新内容尝试。

+0

看起来像最合乎逻辑的解决方案,只是尝试了你的建议,它工作得很好!只需要记住在编码时在分支之间切换:) – garyj 2011-03-10 00:41:12

+0

@Matt正确我同意这听起来像一个合理的,虽然是_esoteric/convoluted_战略(绝大多数git用户)。请介绍几条命令来说明这个流程吗? – 2013-09-06 00:38:20

+0

当然:'git checkout -b build upstream/master; git合并第一分叉; while:做git checkout second-fork; vi **/* && git commit -a; git checkout build; git合并第二分叉;进行测试&& git reset --hard HEAD ^;完成;'等等。你可以从'master'重做合并,如果它进展了,你想测试它,或者如果你进一步修改first-fork的补丁等等。关键在于'build'是一个一次性分支,所以你可以根据需要回放它,以模拟包含'master'和'first-fork'的状态,以及在合并其他提议的更改之前想要的其他任何内容。 – 2013-09-16 21:06:00