[英]Not see remote changes after 'git pull --rebase'
我正在尝试做一个'git pull --rebase',但我没有看到任何远程更改。 当我做'git status'时,我看到'你的分支在12次提交之前超过'origin / master'。
但我现在在我的'dev'分支上,而不是主人。
$ git branch
master
* dev
我的'dev'分支应该跟踪'remotes / origin / dev'。
我想要的就是我正在开发'dev',我想在远程dev上进行远程更改。
但我做了'git pull --rebase',其中一些如何将远程'master'更改为我的'dev'分支。
你能告诉我怎样才能从我的情况中恢复过来?
删除我从远程'master'分支错误地引入的更改(在我执行'git pull --rebase'之后)
将远程'dev'分支上的更改拉入我的'dev'分支。
谢谢。
听起来好像你的开发分支最初是基于origin/master
而不是origin/dev
,或者不管怎么说dev
已被改为跟踪origin/master
。 您可以通过以下方式检查:
git config branch.dev.merge
如果说refs/heads/master
而不是refs/heads/dev
你可以改变dev
分支的上游分支:
git checkout dev
git branch --set-upstream dev origin/dev
然后,为了修复你的分支,我会:
git checkout dev
在dev
分支上 git status
是干净的 git branch dev-wrongly-rebased
origin/master
之前,使用git reflog
查找提交 dev
重置为该点git reset --hard COMMIT-BEFORE-BAD-REBASE
git rebase origin/dev
我在变基时的偏好总是分两步进行,例如:
git fetch origin
git rebase origin/dev
...因为我认为这比git pull --rebase
更不容易出错。 我希望有一些用处。
您可以在正确的远程分支上移动提交
git rebase --preserve-merges --onto origin/dev start end
对于由start和end指定的一系列提交移动到dev。
然后,正确设置跟踪。 如果需要,可以编辑.git / config文件,并比较一次为每个分支设置的跟踪方式,并确保一致的行为。
从现在开始,您将获得一个新的远程分支
git checkout -t origin/branch_name
或者,如果您要将新分支推送到远程
git push -u origin branch_name
这些将根据您的需要设置跟踪。
希望这可以帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.