如何在GitHub中仅使用我的分叉存储库的主分支中的最新提交来执行拉取请求
我在github上建立了一个存储库。我做了一些更改,并提出了拉取请求 现在,我做了一些其他更改,希望执行一个新的拉请求,但在执行拉请求之前的预览屏幕上,它也显示了旧的提交(已经接受的提交)如何在GitHub中仅使用我的分叉存储库的主分支中的最新提交来执行拉取请求,git,github,branch,fork,pull-request,Git,Github,Branch,Fork,Pull Request,我在github上建立了一个存储库。我做了一些更改,并提出了拉取请求 现在,我做了一些其他更改,希望执行一个新的拉请求,但在执行拉请求之前的预览屏幕上,它也显示了旧的提交(已经接受的提交) 如何在分叉存储库的主分支中仅选择最新的提交,以便仅使用该提交执行拉取请求?您可能需要将提交放在单独的分支中(在第一组提交之前进行分支),假设它们与第一次提交无关。然后,单独的分支可以成为pull请求的目标,并且只包含第二组提交。此同事的回答修复了我的问题: git checkout -b NEW_BRANCH
如何在分叉存储库的主分支中仅选择最新的提交,以便仅使用该提交执行拉取请求?您可能需要将提交放在单独的分支中(在第一组提交之前进行分支),假设它们与第一次提交无关。然后,单独的分支可以成为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
,在本例中它将指向您的forkupstream
和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我想要的任何东西,要么将上游主节点合并到您的分支,要么在上游主节点上重新设置主节点的基础。非常感谢!我已经找了很久了。