我有一个分支的GitHub上的项目有一个新的pull请求,我想将其拉到作者尚未拉入的分支中。
有没有简单的方法可以将来自其他分叉的拉取请求应用于我的分叉? 这里还有我想念的东西吗?
#1楼
就像Tekkub之前所说的,您可以直接将分支拉入。 大多数情况下,使用GitHub时,分支只是项目的请求用户分支上的“主”。
例如: git pull https://github.com/USER/PROJECT/ BRANCH
作为一个实际的例子:
假设您对一个名为safaribooks的github项目进行了分叉,并且在原始项目中有以下要放入您的fork的pull请求:
然后,在fork的克隆项目文件夹中,运行:
git pull https://github.com/fermionic/safaribooks.git fix-str-decode
#2楼
一些对我有用的更详细的信息。
我的分叉仓库的.git / config文件如下所示:
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
ignorecase = true
precomposeunicode = false
[remote "origin"]
url = git@github.com:litzinger/angular-carousel.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
rebase = true
[remote "source"]
url = git://github.com/revolunet/angular-carousel.git
fetch = +refs/heads/*:refs/remotes/source/*
fetch = +refs/pull/*/head:refs/remotes/origin/pr/*
然后运行“ git fetch source”,然后列出来自分叉存储库的所有拉取请求。
* [new ref] refs/pull/54/head -> origin/pr/54
* [new ref] refs/pull/67/head -> origin/pr/67
* [new ref] refs/pull/69/head -> origin/pr/69
* [new ref] refs/pull/71/head -> origin/pr/71
然后要合并到特定的请求请求中,请运行“ git merge master origin / pr / 67”
#3楼
对项目的请求请求可能来自许多不同的作者(分支),并且您可能不希望每个分支都有单独的遥控器。 另外,您也不想对提交提交请求时作者使用的分支或作者的master分支中的其他内容进行任何假设。 因此,最好参考在上游存储库中出现的拉取请求,而不是在其他派生中出现的引用。
第1步:
git remote add upstream <url>
您可能已经完成了此步骤,但是如果没有,您将需要为上游项目定义一个远程。 该URL是您分叉的项目的克隆URL。 有关为分叉配置遥控器和同步分叉的更多信息。 upstream
是您为遥控器指定的名称,尽管可以是任何名称,但upstream
是常规名称。
第2步:
git pull upstream refs/pull/{id}/head
...其中{id}
是拉取请求号。 upstream
是要从中拉出的遥控器的名称,即如果完全按照步骤1进行操作,则只是“上游”。 它也可以是URL,在这种情况下,您可以跳过步骤1。
第三步:
输入用于合并提交的提交消息。 您可以保留默认值,尽管我建议给出一个漂亮的单行摘要,其中包含拉取请求编号,它已解决的问题以及简短说明:
Merge PR#42, fixing VIM-652, support for mapping arbitrary IDEA actions
#4楼
更新:通过网页
您也可以通过github网页执行此操作。
我想,你应该已经叉子( MyFork
共同回购(的) BaseRepo
其具有从叉(挂起拉要求) OtherFork
)你感兴趣的内容。
- 导航到发起了拉取请求的分叉(
OtherFork
),您希望将其拉入分叉(MyFork
) - 转到
OtherFork
请求请求页面 - 点击新的拉取请求
- 应该提供未决的请求请求。 记住也要选择适当的
OtherFork
分支。 在左侧选择您的MyFork
叉(MyFork
)( 重要 )作为基础MyFork
叉。 - 现在,“
View pull request
”选项应更改为“Create pull request
。 点击这个。
现在您应该在派生叉中有一个待处理的拉取请求( MyFork
),您可以简单地接受它。
#5楼
我为此使用了方便的花花公子脚本。 我通过键入以下命令运行脚本:
git prfetch upstream
并从上游分叉获取所有拉取请求。
要创建脚本,请创建一个文件~/bin/git-prfetch
。
该文件应包含以下内容:
#!/bin/bash
if [ -z "$1" ]; then
echo "Please supply the name of a remote to get pull requests from."
exit 1
fi
git fetch $1 +refs/heads/\*:refs/remotes/$1/\* +refs/pull/\*/head:refs/remotes/$1/pr/\*
通过设置以下内容,确保您的路径包含脚本:
export PATH="$HOME/bin:$PATH"
您可以将此文件添加到~/.bashrc
以使更改永久~/.bashrc
。
现在,确保添加了您要从中获取拉取请求的叉子:
git remote add upstream https://github.com/user/repo.git
接着
git prfetch upstream
来源:oschina
链接:https://my.oschina.net/u/3797416/blog/3161510