理解GitHub上的pull请求:当删除请求存储库时会发生什么?

aut*_*tix 13 git open-source github pull-request

以下场景:

我分叉了一个开源存储库(GitHub -> project -> Fork).然后我在本地克隆了我的项目副本,在主分支中做了一些更改,提交了它们,然后推送到我的存储库:

$ git clone git@github.com-myusername:myusername/originalprojectname.git
... changes ...
$ cd originalprojectname
$ git add path/to/changed/file.php
$ git commit -m "..."
$ push
Run Code Online (Sandbox Code Playgroud)

之后,我在GitHub上启动了一个pull请求.它被标记为"合并好"并添加到Milestone: x.y.z.

改变后的代码在哪里停留?只在我的回购或其他东西?背景是:我想删除我的存储库.所以,最后我的问题是:如果我在GitHub上删除了我的存储库,那么原始项目的更改是否仍然可用,还是应该等待发布x.y.z

Nev*_*nel 14

是的,删除回购后代码仍然存在.一旦提交了pull-request,Github就会在内部将该分支添加到目标repo(它在非默认命名空间中创建一个分支,因此您通常不会看到这些分支).

由于通常不能删除PR,因此这些分支将无限期地存在于目标仓库中.

回答你的另一个问题:代码将驻留在你的fork和目标repo中(最初,至少,除非你删除你的fork).

  • 仅供参考,[Zach Holman的这次演讲](http://zachholman.com/talk/more-git-and-github-secrets/)(GitHub员工)确认"GitHub甚至将所有拉动请求存储在您的存储库中[...]如果叉子被删除". (2认同)
  • 当我从上游 refork 删除的 repo 时,我可以继续更新以前的 PR 线程吗? (2认同)