Github:拉出请求后清理叉子

Jul*_*ich 7 git github pull-request git-fork

我已经分叉了一个github存储库,提交了一个提交(标题Some small changes),提交了一个pull请求,它被合并到主存储库中(提交标题Some small changes (#12),其中#12是pull请求号).到现在为止还挺好.

现在,当我想更新我的fork(git rebase upstream/master这里)时,我在我的存储库中有两次这样的提交.先是Some small changes一次又一次Some small changes (#12).如果我创建一个新的pull请求,Some small changes则会再次将提交添加到pull请求中.

有两种方法可以解决此问题:

  1. 清理我的叉子,看到这个答案
  2. 将所有提交合并为一个,请参阅此答案

这两种情况都涉及重写我的历史并不得不强制推动.在提交拉取请求时,是否有更好的方法使fork保持同步?

Vis*_*ani 9

是.我会假设有几种方法可以做到这一点,但这就是我所做的.

所以你想在github上贡献一个存储库,让我们调用它upstream.

在github上,你会分叉upstream存储库.让我们称之为origin.

然后在您的开发机器上克隆,origin以便您可以处理代码.让我们称之为local.克隆此存储库时,很可能已将其origin设置为远程存储库.您还需要将upstream存储库添加为远程存储库.

然后,当您想要进行更改时,请勿在master分支上进行此更改.而是为您的更改创建一个新分支.即fix-issue-101

一旦您对所做的更改感到满意,您就会希望将更改从local存储库推送到origin存储库.现在,您可以创建一个拉请求upstreamfix-issue-101分支originmaster分支upstream.

您可以继续在创建新的分支local,并origin在您等待拉入请求被接受,因此产生额外的引入请求.

如果master启用upstream了更改,即您的Pull请求被接受,您将从master开启upstreammaster开启local.然后你推masterlocal,以masterorigin.执行此操作后,master所有存储库的分支将重新同步.

我希望我用一个可以理解的庄园写这个.如果没有随意提问,我会相应更新.

  • 另外,合并拉取请求后,GitHub 允许您一键删除远程分支。合并后,“删除分支”按钮将出现在 Pull Request 页面的底部。 (2认同)