【问题标题】:Workflow for managing pull requests on shared repos in github在 github 中管理共享 repos 上的拉取请求的工作流程
【发布时间】:2011-05-27 09:38:46
【问题描述】:

我正在尝试管理我不拥有但拥有管理员权限的存储库上的拉取请求。当我尝试从另一个分叉中提取更改时,它会失败并出现一个不太清楚的错误。这是我的工作流程...

  1. 分叉主回购
  2. 在该分支中进行更改
  3. 提交到那个分叉
    3.5(转到第 2 步)
  4. 向主仓库提交拉取请求

作为主存储库的管理员,我正在尝试按如下方式合并这些更改...

  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

输入密码后,我收到错误消息...

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

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

谢谢!

【问题讨论】:

    标签: git version-control github


    【解决方案1】:

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

    但在您的情况下,如果您知道自从您分叉并在本地存储库上工作以来没有在原始存储库中发布任何更改,这可能不适用。

    对于您的第二部分,我将遵循“Merging pull request”部分,并将您的分叉存储库添加为原始存储库克隆的远程。

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

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

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

    【讨论】:

    • 看起来我的 git 安装有问题。我无法让 https 工作 - “错误设置证书验证位置” - 我正在尝试使用 'git config' 来设置 'http.sslcainfo',但目前没有运气。
    • 我尝试了以下配置... 'git config --system http.sslcainfo \bin/curl-ca-bundle.crt' 现在'git pull https : //gtracy@github .com/gtracy/project.git master' 再次产生相同的 401 错误?!
    • @Greg:奇怪(您的帐户/密码是否与该回购相关的问题?)并且使用带有 http 的公共地址?
    • 我永远无法通过 https 进行这项工作。但是,我可以使用 'git@github:gtracy/project.git' 成功提取。我在某个地方误解了一些 github 魔术......但是是时候继续前进了。
    • @Greg:好吧,但是 pull 和 push 有两个不同的要求。您需要某种服务器来收听推送。推送的 https 意味着智能 http。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-24
    • 2020-03-23
    • 1970-01-01
    • 2012-08-06
    • 2023-03-05
    • 2021-03-10
    • 2022-11-03
    相关资源
    最近更新 更多