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
如何在GitHub中仅使用我的分叉存储库的主分支中的最新提交来执行拉取请求_Git_Github_Branch_Fork_Pull Request - Fatal编程技术网

如何在GitHub中仅使用我的分叉存储库的主分支中的最新提交来执行拉取请求

如何在GitHub中仅使用我的分叉存储库的主分支中的最新提交来执行拉取请求,git,github,branch,fork,pull-request,Git,Github,Branch,Fork,Pull Request,我在github上建立了一个存储库。我做了一些更改,并提出了拉取请求 现在,我做了一些其他更改,希望执行一个新的拉请求,但在执行拉请求之前的预览屏幕上,它也显示了旧的提交(已经接受的提交) 如何在分叉存储库的主分支中仅选择最新的提交,以便仅使用该提交执行拉取请求?您可能需要将提交放在单独的分支中(在第一组提交之前进行分支),假设它们与第一次提交无关。然后,单独的分支可以成为pull请求的目标,并且只包含第二组提交。此同事的回答修复了我的问题: git checkout -b NEW_BRANCH

我在github上建立了一个存储库。我做了一些更改,并提出了拉取请求

现在,我做了一些其他更改,希望执行一个新的拉请求,但在执行拉请求之前的预览屏幕上,它也显示了旧的提交(已经接受的提交)


如何在分叉存储库的主分支中仅选择最新的提交,以便仅使用该提交执行拉取请求?

您可能需要将提交放在单独的分支中(在第一组提交之前进行分支),假设它们与第一次提交无关。然后,单独的分支可以成为pull请求的目标,并且只包含第二组提交。

此同事的回答修复了我的问题:

git checkout -b NEW_BRANCH_NAME LAST_COMMIT_NAME_BEFORE_THE_ONE_WANTED
git cherry-pick COMMIT_NAME_WANTED
git push origin NEW_BRANCH_NAME
然后在GitHub上,您可以对创建的新分支执行拉取请求

更新

当我第一次开始使用git时,我提出并回答了这个问题。现在我对它有了更多的了解,我想扩展这个答案

当使用fork时,您可能希望保持它相对于原始回购协议的更新。因此,我今天将遵循以下步骤:

git remote add upstream GIT_URL_OF_THE_ORIGINAL_REPO
现在您有一个名为
上游
的参考,它指向该回购。默认情况下,您还应该有另一个名为
origin
,在本例中它将指向您的fork
upstream
origin
正是人们通常命名这些引用的方式,但您可以使用任何您想要的名称

现在,您需要获得最新的更改:

git fetch upstream
然后,如果您想使用
上游的更改更新您的fork,您可以执行以下操作:

git checkout master //checkout your master branch
git merge upstream/master //merge changes from the master branch in upstream into the branch you checked out (master)
git push origin master //if you want to push your updated master to your remote fork
现在,回答最初的问题,如果我想提交一份新的公关,我今天要做的是

git fetch upstream //get the latest changes from the original repo
git checkout -b my_new_feature upstream/master //create a new branch, starting from the master in the original repo
git cherry-pick WHATEVER_COMMIT_I_WANT //select the commit I want and add it to this new branch
git push origin my_new_feature //push a new branch to my fork
然后,我会为
my\u new\u功能
分支请求一个新的PR


只要修改/添加一个文件,然后执行
git add FILENAME
git COMMIT-m“修复一些东西”
git COMMIT-m“修复一些东西”

就像Talljoe所说的答案一样,你就可以用它来替换
git cherry pick which\u COMMIT\u我想要的任何东西,要么将上游主节点合并到您的分支,要么在上游主节点上重新设置主节点的基础。非常感谢!我已经找了很久了。