如何从克隆的回购提交拉取请求?

Ben*_*son 70 github pull-request

如何从现有的本地克隆仓库提交拉取请求?

通常,我想从github查看一些库源代码,所以我克隆它.后来,我发现了代码的一些问题,并在邮件列表中提出,经常是顺便提一下.图书馆作者说"很好找,你能发送拉动请求吗?".

答案是"不那么容易".我还没分叉回购,我克隆了它.似乎没有办法从克隆的回购中提交拉取请求?

如果这个限制是真的,感觉就像是明智的反应就是把你所看到的任何东西和所有东西分开,只要这样你就可以想要做出贡献.这填补了许多非活动分叉的github帐户.

似乎没有多少关于这个问题的讨论 - 我是这个问题影响的唯一人吗?

bob*_*cow 49

在GitHub上分享repo,然后将fork repo作为远程添加到本地克隆副本:

git remote add myfork https://github.com/<myGitHubAccountName>/<repoName>.git
Run Code Online (Sandbox Code Playgroud)

然后你可以推到你的前叉:

git push myfork master
Run Code Online (Sandbox Code Playgroud)

如果你做的不仅仅是这一个拉取请求,你可以删除origin遥控器并将你的叉子命名为origin:

git remote rm origin
git remote add origin https://github.com/<myGitHubAccountName>/<repoName>.git
Run Code Online (Sandbox Code Playgroud)

这通常就是我所做的.有时我添加原始原点,upstream所以我仍然有一个参考.

  • @Torek - 又一个搞砸了工作流程.是*真的*这很难执行一个简单的动作吗?我认为这是git的主要目标之一 - 在分散模型中轻松协作和共享补丁.它不需要火箭科学家推断出目标应该是一个简单易行的,因为它是一个基本的工作流程.那些家伙需要聘请一位UX专家,因为他们都缺乏常识来自己解决这个问题. (7认同)
  • 如果没有分叉,你怎么做? (5认同)
  • 如果您具有对仓库的推送访问权限,则可以在该仓库的分支之间打开拉取请求.您需要将本地分支推送到`origin`上的新分支名称 - 类似于`git push origin HEAD:my-feature`.然后,您可以使用Web UI打开从"my-feature"到"master"的拉取请求. (2认同)

rdr*_*rey 9

如果您可以在路径中安装另一个二进制文件,github已经发布了一个很好的小工具hub.

如果你克隆了别人的回购:

$ hub fork  # This creates a fork and adds your repo as a remote

$ git push YOUR_USER feature  # push the changes to your new remote

$ hub pull-request  # will open your browser
Run Code Online (Sandbox Code Playgroud)