Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.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_Github_Git Branch - Fatal编程技术网

在Git请求后保持本地分支工作

在Git请求后保持本地分支工作,git,github,git-branch,Git,Github,Git Branch,我是Git的新手,最近从GitHub分出了一个项目,做了一些更改,并向GutHub提交了一个拉回请求 我现在正在开发的应用程序中使用我所做的更改,因此我需要在本地进行这些更改,以便我的应用程序能够运行 不过,我确实希望继续向GitHub项目添加功能/更改,方法是分叉另一个分支并在那里进行更改,然后执行另一个pull请求,等等 有没有一种方法可以保留我在第一个fork中所做的更改(在项目开发人员将它们合并到主fork之前以及如果它们被项目开发人员合并到主fork中),并继续向第二个fork添加功能

我是Git的新手,最近从GitHub分出了一个项目,做了一些更改,并向GutHub提交了一个拉回请求

我现在正在开发的应用程序中使用我所做的更改,因此我需要在本地进行这些更改,以便我的应用程序能够运行

不过,我确实希望继续向GitHub项目添加功能/更改,方法是分叉另一个分支并在那里进行更改,然后执行另一个pull请求,等等

有没有一种方法可以保留我在第一个fork中所做的更改(在项目开发人员将它们合并到主fork之前以及如果它们被项目开发人员合并到主fork中),并继续向第二个fork添加功能,然后执行第二个pull请求,该请求将仅包含第二个fork中的更改,以便执行pull请求。然后对第三个叉和后续叉重复该过程


然而,在本地,我将拥有从第一个fork开始的所有更改,这样我就可以根据我正在进行的所有最新更改继续测试我的应用程序

如果您有两个分支,让我们将它们称为
first fork
(您已经提交了拉取请求)和
second fork
(其中包含一些其他内容,无论是否向上游提交),您要做的是保持它们的不同,以缓解上游拉取。我要做的是有第三个本地分支,比如说
build
,作为您正在构建和运行的软件的版本,您可以将
first fork
合并到其中,然后在添加您想要尝试的新内容时重复将
second fork
合并到其中。

似乎是最合理的解决方案,只是尝试了你的建议,效果很好!只需记住在编码时在分支之间切换:)@Matt Enright我同意这听起来是一个合理的、尽管相当深奥/复杂的策略(对于绝大多数git用户来说)。你介意用几个命令来说明这个流程吗?当然:
git checkout-b build-upstream/master;git合并第一个fork;而:做git结帐第二叉;vi**/&&git提交-a;git签出构建;git合并第二分叉;使测试和git复位-硬头^;完成等等。您可以从
master
重新进行合并,如果它进行了并且您想测试它,或者如果您进一步修改了first fork的补丁,等等。这里的关键是
build
是一个一次性分支,因此,您可以根据需要对其进行回放,以模拟一个状态,该状态包括
master
first fork
以及在合并中的其他建议更改之前您想要的任何其他内容。