我已经从 Github fork 了一个存储库,然后创建了一个名为 process 的分支,我已经开始处理这个存储库,并且我已经在我的分支 progress
上对原始 master 进行了 7 次提交,并进行了轻微修改。
现在我将更改推送到 github,它向我显示了这个 这个分支领先 7 个提交,落后 jwasham:master 16 个提交。
现在我通过检查我的流程分支并添加上游解决了这个问题
$ gitbranch --set-upstream-to=origin 进度
然后我进行了 rebase ,以便我的更改出现在原始存储库上所做的提交之上,并像这样完成
$ git pull --rebase
首先,倒回头部以重播您的工作......
进程快进至 266048d8326bde6f1cb137d8b898fc2fff645f94。
但是当我尝试将其推送到 github 时,它向我展示了
$ git pu
Total 0 (delta 0), reused 0 (delta 0)
To https://github.com/uppusaikiran/repo_name.git
0569dcf..266048d process -> process
显然什么都没有改变,但我仍然遇到同样的问题这个分支领先 7 次提交,落后 jwasham:master 16 次提交。
如何解决这个问题,我到底错在哪里,以及如何在更新之上使用我的更改来更新我的 fork ?
许多人建议的简化问题,该问题很难理解
- 在 Github 上我选择一个项目
- 我想继续工作,所以我 fork 了
- 我克隆了我的 fork
- 已创建分支
进度
- 开始在分支机构工作
- 进行了一些微小的更改,但不影响任何删除 Link to what i have done
- 已提交并推送到我的
progress
分支 - 与此同时,所有者(原始存储库)更新了他的存储库,因此我的 fork 已经过时了,但前面有一些提交,这是我的提交
- 所以这让我像这样
7 次提交领先 jwasham:master 16 次提交
- 我想要的只是与存储库提交保持一致,并且我的提交应该位于更新的 fork 之上并且这些提交不会导致冲突
最佳答案
当你在做的时候
$ git branch --set-upstream-to=origin progress
您告诉 git 您的本地分支progress
正在跟踪origin/progress
$ git pull --rebase
正在根据origin/progress
而不是如您所愿的jwasham:master
重新设定基准。
您需要将更改从 jwasham:master
提取到本地克隆中,然后才能执行 rebase 操作。
例如:
$ git remote add jwasham <URL>
$ git fetch --all
$ git rebase jwasham/master
然后你可以推送到你的 github 克隆 - 如果你之前发布了你的分支,最有可能使用 --force。
关于Git:为什么在 Re-basing 之后我的 fork 仍然落后于原始的 repo master?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39975456/