10

这些是我执行的步骤顺序:

  1. 将我在分支中的更改提交给本地 master (commit id dc9afg2k)
  2. git fetch origin master && git merge origin master
  3. git checkout master
  4. git pull(这拉动了所有最近的变化)
  5. git fetch origin master && git merge origin master
  6. git reset --hard origin/master
  7. git checkout branch
  8. git blog
  9. git reset --hard dc9afg2k(提交成功)
  10. git checkout master
  11. git log(这又回到了 2 天前)。
  12. git pullmaster不使用当前更新origin/master)。
4

1 回答 1

26

master当远程仓库收到强制推送git push --force)重写历史时,可能会发生不同步。

如果您在 master 上完成了自己的提交:

  • 创建一个分支(以记住当前的 master 状态)
    git branch old_master

  • 确保您没有任何需要保存的私人文件。

  • 遵循本指南

那将是:

git fetch origin
git reset --hard origin/master
git clean -f -d

-n(您可以使用 ' ' 选项预览上一次清洁步骤git clean -n -f -d:)


请注意,这git fetch origin master && git merge origin master可能是:将两个步骤分开的目的是查看合并之前和合并之前的git pull origin master差异。 如果你不做那个差异,那么 a更简单。masterorigin/master
git pull

于 2013-09-20T05:24:20.783 回答