Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当pull请求被拒绝时,如何更新GitHub forked repo?_Github_Git Rebase_Git Checkout - Fatal编程技术网

当pull请求被拒绝时,如何更新GitHub forked repo?

当pull请求被拒绝时,如何更新GitHub forked repo?,github,git-rebase,git-checkout,Github,Git Rebase,Git Checkout,我在GitHub上进行了回购,并提交了拉取请求。项目的维护人员拒绝了pull请求,但我们在论坛上找到了更好的解决方案。他们指示我创建另一个具有替代更改的pull请求。然而,我在GitHub上的存储库分支现在已经过时了,因为自从我分支之后,更新已经推送到了主repo。此外,GitHub上的存储库还有一个额外的提交(我的pull请求提交),它不应该在那里,因为它不被接受为项目的一部分 我发现这个问题: 我遵照指示,具体地说,我做到了: git remote add upstream git://gi

我在GitHub上进行了回购,并提交了拉取请求。项目的维护人员拒绝了pull请求,但我们在论坛上找到了更好的解决方案。他们指示我创建另一个具有替代更改的pull请求。然而,我在GitHub上的存储库分支现在已经过时了,因为自从我分支之后,更新已经推送到了主repo。此外,GitHub上的存储库还有一个额外的提交(我的pull请求提交),它不应该在那里,因为它不被接受为项目的一部分

我发现这个问题:

我遵照指示,具体地说,我做到了:

git remote add upstream git://github.com/fuel/core
git fetch upstream
这导致:

remote: Counting objects: 93, done.
remote: Compressing objects: 100% (47/47), done.
remote: Total 69 (delta 49), reused 40 (delta 20)
Unpacking objects: 100% (69/69), done.
From git://github.com/fuel/core
 * [new branch]      1.0/master -> upstream/1.0/master
 * [new branch]      1.1/master -> upstream/1.1/master
 * [new branch]      1.2/develop -> upstream/1.2/develop
 * [new branch]      1.2/master -> upstream/1.2/master
 * [new branch]      1.3/develop -> upstream/1.3/develop
 * [new branch]      1.3/master -> upstream/1.3/master
 * [new branch]      1.4/develop -> upstream/1.4/develop
 * [new branch]      1.4/master -> upstream/1.4/master
 * [new branch]      1.5/develop -> upstream/1.5/develop
 * [new branch]      1.5/master -> upstream/1.5/master
 * [new branch]      1.6/develop -> upstream/1.6/develop
 * [new branch]      feature/better-hmvc -> upstream/feature/better-hmvc
好吧,看来一切都很好。我确保我在正确的分支上:

git checkout 1.6/develop
Already on '1.6/develop'
字。好,现在来谈这个:

git rebase upstream/1.6/develop
First, rewinding head to replay your work on top of it...
Applying: prevent invalid XML node names
等等…什么?为什么要应用“防止无效的XML节点名”?这就是被项目维护人员拒绝的请求。很明显,我错过了“再基地”的真正含义。现在如果我
git status
它说:

# On branch 1.6/develop
nothing to commit (working directory clean)
当我
git log
时,我可以看到我的问题已经解决了一半。自从我分叉以来,已经拉入项目的更改现在反映在我的
git日志中。但是,最近的提交仍然是“防止无效的XML节点名”。我怎样才能把它抹掉

我尝试查看对项目的最后一次承诺:

git checkout 5f31a4df55e5b6ca1b2092534063a1fce4a32181

然而,这让我处于一种超然的状态。它说我可以环顾四周,做出改变并提交它们。我不认为那是我想做的。我想我想让HEAD指向承诺5f31a4df55e5b6ca1b2092534063a1fce4a32181。我的下一步是什么?

git-rebase
将使您的提交保持在您的分支上。由于您的请购单已被拒绝,您希望将其删除,并使您的
分支与
上游/主
分支相同

因此,您需要重置

git checkout master
git reset --hard upstream/master

那么你将拥有与上游完全相同的主机。然后,为您的新公关创建一个新分支,这样您就不会再有这个问题。

因为这个问题有一个已经被接受的答案,但我将告诉您另一种方式,因为在我的情况下,被接受的答案并不顺利

执行

$git rebase    
There is no tracking information....

$git checkout
Already on 'master'

$git reset --hard upstream/master
ambiguous argument upstream/master
如果出现这种情况,请执行以下步骤。

局部复位头

$git reset HEAD
在服务器repo上进行相同的更改

$git reset HEAD^
然后它将显示有关您对原始分叉回购所做更改的消息,列出所有文件。 未分级的已更改文件名。

现在使用以下方法撤消更改:

$git stash
现在,您可以强制将这些更改推送到服务器,将本地和远程回购指向同一个头部

$git push origin +HEAD

现在,您在fork时所在的同一回购协议中。现在,您可以再次从原始回购中获取最新代码。

谢谢!我想再次强调一下,因为这对我很有帮助:“那么,为你的新公关创建一个新的分支,这样你就不会再有这个问题了。”这似乎更准确一点:推动对我来说是必要的。