如何在GitHub上获取他人分支的fork?

201

我已从GitHub上的一个仓库fork出来。 我想从另一个用户的fork的分支获取代码。

我必须将此用户整个仓库克隆到单独的本地仓库中,还是可以像 git checkout link_to_the_other_users_branch 这样做?


3
你正在寻找 Git 的“远程仓库”:http://progit.org/book/ch2-5.html - millimoose
2个回答

377
$ git remote add theirusername git@github.com:theirusername/reponame.git
$ git fetch theirusername
$ git checkout -b mynamefortheirbranch theirusername/theirbranch

请注意,在添加远程时,有多个“正确”的URI可供使用,这取决于您的情况。

  • git@github.com:theirusername/reponame.git 是基于SSH的URI
  • https://github.com/theirusername/reponame.git 是基于HTTPS的URI

您偏好使用哪个URI将取决于您的情况。GitHub有一篇帮助文章,解释了它们之间的区别并帮助您进行选择:选择远程存储库的URL


1
那最后一行代码是做什么的? - Andrew Downes
3
最后一行创建了一个名为mynamefortheirbranch的新分支,其起点被设置为theirusername/theirbranch的最新提交。 - Louis Simoneau
4
我得到了“致命错误:无法同时更新路径并切换到分支'xyz'。您是否打算检出无法解析为提交的'xyz/xyz'? " 的提示。 - The Onin
2
没有和我一起工作。 - Ahmed
@amalloy 它按预期创建了一个分支,但不允许将该分支推送到我的当前分叉中。收到以下消息:“要将更改推送到远程上游分支,请使用git push krupa-fork HEAD:develop要将更改推送到远程同名分支,请使用git push krupa-fork HEAD” - javaGroup456
执行添加远程仓库的第一条命令后: $ git fetch theirusername theirbranchname:yourbranchname 该分支将被获取并添加到您的本地派生仓库中。如果需要,可以进行推送。 - Vikrant

47

我相信你的第一行末尾缺少一个.git - TomNorway
@TomNorway 你确定吗?这样对你不起作用吗? - Mateusz Piotrowski
1
这对我不起作用 - git fetch theirusername 返回 fatal: 'username' 似乎不是 Git 存储库 - anks
@anks,你的错误信息看起来很奇怪。 - Mateusz Piotrowski
1
@MateuszPiotrowski 嗯,我第一次使用命令时用错了(在 add 后面漏掉了 theirusername)。抱歉 :) - anks
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接