#1 楼
您可以尝试撤消请求请求的发生方式。转到叉子
发出拉动请求
默认情况下,这将是您右边的叉子(头部回购)请求将其提交和更改推送到左侧的原始存储库。
单击基本存储库和头存储库的下拉列表,然后选择彼此的存储库。
您希望自己的存储库在左侧列出(接受更改),而原始存储库在右侧列出(可以进行更改的列表)。如下图所示:
发送拉动请求
如果叉尚未进行任何更改,您应该能够自动接受合并。
如果您的代码因某种原因发生冲突或不够干净,那么通过GitHub Web界面进行更新将无法正常工作,您将需要获取代码并解决计算机上的所有冲突在推回叉子之前。
评论
这仍然有效,但是不理想。这绝对是一个把戏。这不是正确的方法。
–杰克·威尔逊(Jake Wilson)
2014年12月3日在5:07
确认一个坏主意。这以Github建议您将请求空提交到原始项目的方式污染了存储库。参见示例github.com/dthommes/RoboSpring/pull/3-一旦我做出了贡献,便进行了同步,现在Github希望我推送“ Syncing my fork”提交,标记为“从dthommes / master合并合并请求1” ……”
–usr-local-ΕΨΗΕΛΩΝ
2014年12月29日14:33
我认为这不再有效。尽管似乎有些奇怪,但没有简单的方法可以做到这一点。
–托比·艾伦(Toby Allen)
16 Mar 6 '16 at 19:39
我只是尝试了一下,它似乎并没有立即起作用-更改其中一个叉子时,它立即打开了“比较更改”页面。但是,单击“跨叉比较”链接允许仍然更改另一个叉。也许您可以为此添加一些效果。
– Peter Mortensen
17年5月10日19:50
GitHub应该添加一个“ Sync Fork”按钮,这样您就不必创建一百万个PR。现在,我正在使用命令行来更新我的fork。
– Suici Doga
17年5月31日下午5:16
#2 楼
会更容易。转到分叉的仓库(您的仓库),然后单击按钮-“新拉取请求”。
在打开的页面上,下拉选择框下方的消息中有一个指向“切换基础”的小链接。点击链接。
现在,它将自动导致您的原始回购。单击“创建请求请求”按钮并写入一些提交消息。
现在它将自动导致您的分叉存储库,单击“合并请求请求并确认合并”以完成操作。
评论
您应该弄清楚那些绿色按钮是什么,这将是一个很好的响应。
–罗德里戈·格拉萨(RodrigoGraça)
16 Mar 7 '16 at 13:36
截至4/2016,这绝对是最好的答案。
–dr_
16年4月13日在8:48
这种方法的问题在于,它向分支添加了额外的提交,因此它与上游存储库并没有真正同步。
–莫蒂
16年5月22日在13:19
@Mottie有没有办法让我们知道我们的fork是否在最新的上游版本的后面,并且可以看到变化的差异,而无需实际拉出它们?
– Sujay Phadke
16 Dec 11'在5:38
@SujayPhadke在分支选择按钮下的主分支回购页面上将显示一条消息“此分支是xx提交在xxxx:master之后。”。至于查看差异,消息的同一行中有一个“比较”按钮;或者您可以转到以下链接:https://github.com/{user}/{forkedRepoName}/compare/master...{originalRepo}:master
–莫蒂
16 Dec 15'23:57
#3 楼
如何使用远程上游存储库中的更改更新派生的GitHub存储库GitHub帮助中的说明:
配置远程Fork
>同步叉子
设置/操作说明:
打开Git Bash(Windows)或Linux / Mac Terminal
如果尚未克隆您的存储库,您必须转到开发文件夹的工作目录并将其克隆到您的工作站。
$ git clone https://github.com/YOUR_USERNAME/YOUR_FORK.git
转到分叉的工作目录在工作站上进行回购。
$ cd /user/development/my_forked_repo/
列出您的fork的当前配置的远程存储库。
$ git remote -v
origin https://github.com/YOUR_USERNAME/YOUR_FORK.git (fetch)
origin https://github.com/YOUR_USERNAME/YOUR_FORK.git (push)
指定一个将与fork同步的新远程上游存储库。
$ git remote add upstream https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git
验证您为fork指定的新上游存储库。
$ git remote -v
origin https://github.com/YOUR_USERNAME/YOUR_FORK.git (fetch)
origin https://github.com/YOUR_USERNAME/YOUR_FORK.git (push)
upstream https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git (fetch)
upstream https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git (push)
从上游存储库中获取分支及其各自的提交。提交给master的文件将存储在上游/ master的本地分支中。
$ git fetch upstream
remote: Counting objects: 75, done.
remote: Compressing objects: 100% (53/53), done.
remote: Total 62 (delta 27), reused 44 (delta 9)
Unpacking objects: 100% (62/62), done.
From https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY
* [new branch] master -> upstream/master
检查fork的本地master分支。
$ git checkout master
Switched to branch 'master'
将来自上游/主服务器的更改合并到本地主分支中。这将使fork的master分支与上游存储库同步,而不会丢失本地更改。
$ git merge upstream/master
Updating a422352..5fdff0f
Fast-forward
README | 9 -------
README.md | 7 ++++++
2 files changed, 7 insertions(+), 9 deletions(-)
delete mode 100644 README
create mode 100644 README.md
如果您的本地分支没有任何唯一的提交,则Git将而是执行“快进”:
$ git merge upstream/master
Updating 34e91da..16c56ad
Fast-forward
README.md | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
您现在需要将提交推送到您的fork。
$ git push
如果您尚未通过身份验证,它将提示您输入github用户名/密码。一旦通过身份验证,新提交将被推送到您的fork并在github上可见。
评论
感谢您的详细回答,但是希望能找到使用Web界面的解决方案。
–托比·艾伦(Toby Allen)
16 Mar 11 '16 at 6:47
评论
请参阅更新我的github存储库,该存储库是从另一个项目中派生的将原始Github存储库中的新更新拉入分叉的Github存储库实际上比上述更新更近。
github.com/isaacs/github/issues/438