GitHub是处理多拉请求的更好方法吗?

GitHub是处理多拉请求的更好方法吗?,git,github,gitlab,Git,Github,Gitlab,我一直在与一个开源项目合作,该项目要求将所有拉请求(PR)推送到主分支。在发布新版本之前,不会合并所有PRs。假设我推动了一个公关,并希望与一个新的工作。我需要删除前一个的所有代码。由于项目要求,我无法创建新分支。但是,如果我对这些代码做了任何操作并使用了fork,它将立即反映到我以前的PR。为了避免影响,我必须先删除我当前的fork,然后再次使用fork进行新的PR。它对我有效,但需要很多步骤,非常令人沮丧,很难重新使用以前的PR 还有更好的办法吗?谢谢可能对流程有误解。您应该打开一个请求,将

我一直在与一个开源项目合作,该项目要求将所有拉请求(PR)推送到主分支。在发布新版本之前,不会合并所有PRs。假设我推动了一个公关,并希望与一个新的工作。我需要删除前一个的所有代码。由于项目要求,我无法创建新分支。但是,如果我对这些代码做了任何操作并使用了fork,它将立即反映到我以前的PR。为了避免影响,我必须先删除我当前的fork,然后再次使用fork进行新的PR。它对我有效,但需要很多步骤,非常令人沮丧,很难重新使用以前的PR


还有更好的办法吗?谢谢

可能对流程有误解。您应该打开一个请求,将分支合并到主分支中。从中合并的分支不应是主分支。它应该是一个主题分支。记住,合并需要两个分支:源分支和目标分支

在拉请求的情况下,目标分支是主分支。源分支不应该是fork中的主分支。它应该是你的分支中的一个主题分支

正确的流程是:

  • 将最新版本从原始存储库的主分支拉入fork中的主分支

    # Configure remote from where you forked your repo (do this only once)
    git remote add upstream https://github.com/foo/bar.git
    
    # Do these steps before starting on a new feature
    git fetch upstream
    git checkout master
    git merge upstream/master
    git push origin HEAD
    
  • 在你的叉子上创建一个主题分支
    git checkout -b feature master
    
  • 尽可能多地工作和承诺
    git commit -m "..."
    
  • 将主题分支推到GitHub上的分支
    git push origin -u HEAD
    
  • 在原始存储库上提交拉取请求,以将fork中的主题分支合并到其存储库上的主分支中
  • 对您认为必要的多个拉取请求重复步骤1-5


    通过pull请求中的历史记录可以明显看出您的主题分支是否是最新的。如果他们的存储库要求您将您的主机合并到他们的主机中以请求拉取,那么他们的进程将中断。他们做错了,正是因为这个原因,你才问了一个关于StackOverflow的问题。

    你是在更新远程上在PR中提出的同一个分支吗?是的,主分支,因为项目只需要推动该分支,我会说项目使用的流程不好。。。如果你不想在PR上显示新的提交,不要使用同一个分支。你应该能够在你的分支中处理不同的分支,但可以在上游回购中打开针对master的PR。“在发布新版本之前不会合并所有PR”。这也不是一个好的做法(你不会从持续集成中受益)。您的项目应至少使用2个分支
    master
    用于发布版本,而
    dev
    用于合并等待下一版本的PRs。