在github上管理共享存储库上的pull请求的工作流程

时间:2010-12-17 22:49:43

标签: git version-control github

我正在尝试管理我不拥有但拥有管理员权限的回购请求。当我尝试从另一个fork中提取更改时,它会因错误而失败。这是我的工作流程......

  1. Fork main repo
  2. 在该分叉中进行更改
  3. 承诺那个叉子 3.5(转到第2步)
  4. 向主回购提交拉取请求
  5. 作为主要回购的管理员,我正在尝试合并这些更改,如下所示......

    1. git clone git@github.com:dude/project.git
    2. git checkout -b gtracy-master master
    3. git pull http://gtracy@github.com/gtracy/project.git master
    4. 输入密码后,我收到错误消息......

      error: The requested URL returned error: 401 while accessing 
      http://gtracy@github.com/gtracy/project.git/ifno/refs
      

      这个工作流程错了吗?有没有更简单的方法来管理我自己的拉取请求?

      谢谢!

1 个答案:

答案 0 :(得分:7)

GitHub "pull request" help page没有提到它,但我更喜欢在提交任何拉取请求之前,在原始仓库的分支顶部使用fork完成我的工作。
也就是说,我会将原始repo添加为远程,获取我的pull请求最终应用的分支,然后在该分支顶部首先在本地(在我的fork中)重新设置我的工作。
这样我就可以确保所有的拉动请求都是快进的。

在您的情况下,如果您知道在原始仓库中没有发布任何更改,那么这可能不适用,因为您已分叉并使用本地仓库。

对于你的第二部分,我会遵循“Merging pull request”部分,并将你的分叉回购添加为原始回购克隆的远程。

话虽如此,GitHub Smart HTTP page中提到错误401“未经授权”:

  

不要忘记https部分 - Git会通过网络发送您的密码哈希但未加密,因此请务必使用SSL。
  在Git的未来版本中(假设我们的补丁已经集成),如果没有提供你的用户名并且客户端获得401,Git将提示你输入用户名,所以你实际上不必将你的用户名放在URL中 - 它只会问当Git需要它时你。

因此,如果您想在地址中使用用户名,请尝试使用https 或者尝试http://github.com/gtracy/project.git(公共回购地址)