我在 GitHub 上创建了一个 repo 并提交了一个 pull request。该项目的维护者拒绝了拉取请求,但我们在论坛中制定了更好的解决方案。他们指示我使用替代更改创建另一个拉取请求。但是,我在 GitHub 上的存储库 fork 现在已经过时了,因为自从我 fork 以来,更新已经推送到主存储库。此外,GitHub 上的存储库有一个不应该存在的额外提交(我的拉取请求提交),因为它不被接受为项目的一部分。
我发现了这个问题:如何更新 GitHub 分叉存储库?
我按照说明进行操作,具体来说,我这样做了:
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 节点名称”?那是被项目维护者拒绝的拉取请求。我显然错过了“rebase”的真正含义。现在,如果我git status
说:
# On branch 1.6/develop
nothing to commit (working directory clean)
当 I 时git log
,我可以看到我的问题已经解决了一半。自从我分叉以来已被拉入项目的更改现在反映在我的git log
. 但是,最近的提交仍然是“防止无效的 XML 节点名称”。我该如何消除它?
我尝试检查对项目的最后一次提交:
git checkout 5f31a4df55e5b6ca1b2092534063a1fce4a32181
然而,这让我处于分离的 HEAD 状态。它说我可以环顾四周,进行更改并提交它们。我不认为那是我想做的。我想我希望 HEAD 指向提交 5f31a4df55e5b6ca1b2092534063a1fce4a32181。我下一步要做什么?