我有一个托管在GitHub上的项目,有人已经分叉了。在他们的分支上,他们创建了一个新的分支"foo“,并进行了一些更改。我如何将他们的"foo“放入我的repo中也名为"foo”的新分支中?
我知道他们可以向我提交拉取请求,但我想自己发起这个过程。
假设如下所示:
因为他们派生了我的项目,我们的两个repos共享相同的'history'
发布于 2011-05-04 22:17:35
git remote add coworker git://path/to/coworkers/repo.git
git fetch coworker
git checkout --track coworker/foo
这将设置一个跟踪远程分支coworker/foo
的本地分支foo
。因此,当你的同事做了一些改变时,你可以很容易地把它们拉出来:
git checkout foo
git pull
回复评论:
:)如果我想对该分支进行自己的更改,我是否应该从"foo“创建第二个本地分支"bar”并在那里工作,而不是直接在我的"foo“上工作?
你不需要创建一个新的分支,尽管我推荐这样做。你不妨直接提交给foo
,让你的同事拉你的分支。但是该分支已经存在,并且您的分支foo
需要设置为它的上游分支:
git branch --set-upstream foo colin/foo
假设colin
是以类似方式定义的存储库(同事存储库的远程存储库):
git remote add colin git://path/to/colins/repo.git
发布于 2017-03-10 18:40:18
不,你不需要添加它们作为遥控器。那会很笨拙,每次都会很痛苦。
抓取他们的提交:
git fetch git@github.com:theirusername/reponame.git theirbranch:ournameforbranch
这将创建一个名为ournameforbranch
的本地分支,该分支与theirbranch
为它们创建的分支完全相同。对于问题示例,最后一个参数是foo:foo
。
注如果想出一个与您自己的分支不冲突的名称是很麻烦的,则可以进一步省略:ournameforbranch
部件。在这种情况下,可以使用一个名为FETCH_HEAD
的引用。你可以通过git log FETCH_HEAD
查看他们的提交,然后像cherry-picked
这样精挑细选他们的提交。
把它推回给他们:
通常情况下,你想修复他们的一些东西,然后把它推回去。这也是可能的:
git fetch git@github.com:theirusername/reponame.git theirbranch
git checkout FETCH_HEAD
# fix fix fix
git push git@github.com:theirusername/reponame.git HEAD:theirbranch
如果您担心在中工作,请使用:ournameforbranch
创建一个分支,并将上面的FETCH_HEAD
和HEAD
替换为ournameforbranch
。
发布于 2018-11-11 13:51:29
下面是一个很好的权宜之计的解决方案,它与GitHub一起从另一个用户的分支中检出PR分支。您需要知道拉取请求ID ( GitHub与PR标题一起显示)。
示例:
修复不安全代码 #8
alice希望将her_repo:branch
中的1个提交合并到your_repo:master
中
git checkout -b <branch>
git pull origin pull/8/head
如果与origin
不同,请更换遥控器。
请将8
替换为正确的拉流请求ID。
https://stackoverflow.com/questions/5884784
复制相似问题