'git pull --rebase' 后看不到远程更改

mic*_*ael 5 git

我正在尝试执行 'git pull --rebase',但我没有看到任何远程更改。当我执行 'git status' 时,我看到“您的分支比 'origin/master' 领先 12 次提交。”

但我目前在我的“开发”分支上,而不是主人。

$ git branch
  master
* dev
Run Code Online (Sandbox Code Playgroud)

我的“dev”分支应该跟踪“remotes/origin/dev”。

我想要的只是我在“开发”上工作,我想对远程开发进行远程更改。

但是我做了 'git pull --rebase',其中一些如何将远程“master”更改为我的“dev”分支。

你能告诉我如何从我的情况中恢复过来吗?

  1. 删除我错误地从远程“master”分支引入的更改(在我执行“git pull --rebase”之后)

  2. 将远程“dev”分支上的更改拉入我的“dev”分支。

谢谢你。

Mar*_*air 5

听起来好像您的开发分支最初是基于origin/master而不是基于origin/dev,或者以某种方式dev更改为跟踪origin/master。您可以通过以下方式检查:

git config branch.dev.merge
Run Code Online (Sandbox Code Playgroud)

如果是这样的话,您可以使用refs/heads/master以下命令refs/heads/dev更改分支的上游分支dev

git checkout dev
git branch --set-upstream dev origin/dev
Run Code Online (Sandbox Code Playgroud)

然后,为了修复你的分支,我会:

  1. 确保您在dev分支上git checkout dev
  2. 确保git status干净
  3. 创建一个分支来保存您所在的位置(为了安全):git branch dev-wrongly-rebased
  4. 用于git reflog在重新建立基础之前查找提交origin/master
  5. 重置dev到该点git reset --hard COMMIT-BEFORE-BAD-REBASE
  6. 最后,做git rebase origin/dev

我在变基时的偏好始终是分两步进行,例如:

git fetch origin
git rebase origin/dev
Run Code Online (Sandbox Code Playgroud)

...因为我认为这比git pull --rebase. 我希望这有一些用处。