【问题标题】:Overriding remote git repository with my repository用我的存储库覆盖远程 git 存储库
【发布时间】:2011-09-12 16:54:29
【问题描述】:

远程存储库包含错误版本。我在本地有一个好版本的副本。我想用我当前的存储库替换远程存储库上的所有内容(远程存储库还有一些不应该发生的提交(包括合并))。

如果我尝试推送,它会告诉我需要先拉取,但我不想这样做,因为这会弄乱我的本地版本。我希望远程仓库包含我在本地拥有的内容。

我该怎么做?

【问题讨论】:

标签: git


【解决方案1】:
  1. 从已知的好版本创建一个新的本地分支
  2. 切换到已知的错误分支
  3. 将已知好的分支完全合并到已知的坏分支中
  4. 提交并推送

我通常使用这样的过程来准确保留更改的内容,拥有一个已知良好副本的隔离分支等。与使用 --force 相比,它可能过度,但我更喜欢它。

【讨论】:

  • merge 不起作用,因为好的更改比坏的更改要旧,所以没有什么可以合并的。
【解决方案2】:

【讨论】:

  • 同样的事情:! [remote rejected] master -> master (non-fast-forward)
  • 那么你需要关闭远程存储库.git/config中的receive.denyNonFastForwards,如果它拒绝它,即使指定了--force
  • 在远程仓库中使用了git config receive.denyNonFastForwards false,我也遇到了同样的错误。
  • @Amber,我在本地 repo 上运行 git push -f origin master
  • 嗯。嗯,我想你可以尝试另一种方式,使用远程仓库中的git fetch 从本地获取好的版本?
猜你喜欢
  • 1970-01-01
  • 2011-10-06
  • 2020-02-01
  • 2012-03-18
  • 2013-01-04
  • 2021-10-21
  • 2013-04-13
相关资源
最近更新 更多