lee*_*eek 445 git github pull-request
GitHub上的一个项目,我有一个新的拉动请求,我想要进入我的分支,作者还没有进入.
有没有一种简单的方法可以将其他叉子的拉取请求应用到我的叉子中?这里还有别的东西我不见了吗?
Cha*_*esB 271
你可以很容易地手动完成:
将另一个fork添加为repo的远程:
git remote add otherfork git://github.com/request-author/project.git
Run Code Online (Sandbox Code Playgroud)获取他的回购提交
git fetch otherfork
Run Code Online (Sandbox Code Playgroud)然后,您有两个选项来应用拉取请求(如果您不想选择选择1).
如果您不关心还应用在origin和pull请求之间添加的最终提交,您可以只改变形成pull请求的分支.
git rebase master otherfork/pullrequest-branch
Run Code Online (Sandbox Code Playgroud)如果您只想要拉取请求中的提交,请确定它们的SHA1并执行
git cherry-pick <first-SHA1> <second-SHA1> <etc.>
Run Code Online (Sandbox Code Playgroud)Hot*_*hke 267
您也可以通过github网页完成此操作.
我假设你应该已经有一个MyFork普通repo(BaseRepo)的fork(),它有一个OtherFork你感兴趣的fork()的挂起请求.
OtherFork),它已经启动了你想进入fork的pull请求(MyFork)OtherForkOtherFork分支.在左侧选择作为基叉叉(MyFork)(重要).View pull request应该改为Create pull request.点击这个.现在你应该在fork(MyFork)中有一个挂起的pull请求,你可以接受.
Sci*_*Phi 69
就像Tekkub先前所说的那样,你可以直接拉入分支.大部分时间使用GitHub,分支在请求用户的项目分支上只是"主".
例: git pull https://github.com/USER/PROJECT/ BRANCH
Bri*_*ger 20
一些更详细的信息对我有用.
forked repo的.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/*
Run Code Online (Sandbox Code Playgroud)
然后运行"git fetch source",然后列出forked repo中的所有pull请求.
* [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
Run Code Online (Sandbox Code Playgroud)
然后在特定的拉取请求中合并运行"git merge master origin/pr/67"
jby*_*ler 19
对项目的拉取请求可能来自许多不同的作者(分叉),并且您可能不希望每个分支都有单独的远程.此外,您不希望对提交拉取请求时作者使用的分支做出任何假设,或者作者的主分支中可能还有其他内容.因此最好引用上游存储库中出现的pull请求,而不是它在其他分支中出现的那样.
步骤1:
git remote add upstream <url>
Run Code Online (Sandbox Code Playgroud)
您可能已经完成了这一步,但如果没有,您将需要为上游项目定义一个远程.URL是您分叉的项目的克隆URL.有关为fork配置远程和同步fork的更多信息. upstream是你给遥控器的名字,虽然它可以是任何东西, upstream但是传统名称.
第2步:
git pull upstream refs/pull/{id}/head
Run Code Online (Sandbox Code Playgroud)
... {id}拉请求号在哪里. upstream是拉出的遥控器的名称,即如果您完全按照步骤1进行"上游".它也可以是一个URL,在这种情况下,您可以跳过步骤1.
第3步:
键入合并提交的提交消息.您可以保留默认值,但我建议您提供一个很好的单行摘要,其中包含拉取请求编号,修复的问题以及简短说明:
Merge PR#42, fixing VIM-652, support for mapping arbitrary IDEA actions
Run Code Online (Sandbox Code Playgroud)
我要做的是以下几点;
git checkout master
git remote add #NAME# #ADDRESS TO REPO#
git fetch #USERNAME#
git checkout -b test_fork
git rebase #NAME#/#BRANCH#
Run Code Online (Sandbox Code Playgroud)
我现在已将更改合并到一个名为test的测试分支中test_fork.所以任何改变都不会弄脏我的树.
如果更可取,您可以选择使用如上所述的cherry-pick来选择特定的提交.
旅途愉快 :)
| 归档时间: |
|
| 查看次数: |
48764 次 |
| 最近记录: |