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

标签 git

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

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

$ git branch
  master
* dev

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

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

但我执行了“git pull --rebase”,其中一些如何将远程“master”更改 pull 到我的“dev”分支。

你能告诉我怎样才能从我的情况中恢复过来吗?

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

  2. 将远程“dev”分支上的更改 pull 入我的“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

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

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

当 rebase 时,我的偏好总是分两步进行,例如:

git fetch origin
git rebase origin/dev

... 因为我认为这比 git pull --rebase 更不容易出错。希望对您有所帮助。

关于git - 在 'git pull --rebase' 之后看不到远程更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5315869/

相关文章:

git - 返回到 GIT 中的上一个点

git - 在 git branch 中退后几个修改

git - DOWNLOAD_SOURCE 阶段的 AWS Codebuild 错误

java - git/GitHub 属性配置

git - BitBucket - 如何从服务器检索所有存储库 url

php - CakePHP 迁移数据库行

ruby-on-rails - Git 的安装位置有什么不同吗

c++ - libgit2 - 两个文本 blob 的差异

git - Pycharm,git : merge from master into branch

git - 如何分 3 个阶段最好地管理网站的 Git 存储库?