【问题标题】:Is there a way to do a performant git reset --hard HEAD?有没有办法做一个高性能的 git reset --hard HEAD?
【发布时间】:2018-04-06 04:03:55
【问题描述】:

我今天下午做了一个 git pull。合并失败,有一千个文件冲突。在合并冲突后我找不到一个有效的命令,在所有文件上选择“他们的”策略,我不想解决每个问题,所以我尝试中止合并。 git reset --mergegit merge --abortgit checkout master 不起作用。没有合并头,另一个失败。我试过git reset --hard HEAD,8 小时后只有 50%。为什么会发生这种情况,将来如何避免这种情况?我有一个 RAID SSD,我可以在 15 分钟内再次克隆 repo。 如果有人知道其中之一,可能的解决方案:

  1. 快速重置的命令。
  2. 一个命令合并失败后为git checkout --theirs . 等所有文件选择“他们的”(此命令不起作用)

我相当彻底,在任何流行的 git 问题中都没有看到大型合并冲突的解决方案。

以下是错误:

C:\Users\sticker592\source\repos\netDocs\docs-1>git reset --merge
error: Untracked working tree file '.gitattributes' would be overwritten by merge.
fatal: Could not reset index file to revision 'HEAD'.

C:\Users\sticker592\source\repos\netDocs\docs-1>git merge --abort
fatal: There is no merge to abort (MERGE_HEAD missing).
C:\Users\sticker592\source\repos\netDocs\docs-1>git merge --strategy-option theirs
Already up-to-date.

C:\Users\sticker592\source\repos\netDocs\docs-1>git merge master --strategy-option theirs
Already up-to-date.

C:\Users\sticker592\source\repos\netDocs\docs-1>git checkout --theirs
fatal: '--ours/--theirs' cannot be used with switching branches

C:\Users\sticker592\source\repos\netDocs\docs-1>git merge -X theirs master
Already up-to-date.
C:\Users\sticker592\source\repos\netDocs\docs-1>git status
On branch master
Your branch is up-to-date with 'origin/master'.

根据 VS 团队资源管理器,合并仍然存在冲突,需要在我推送或提交之前解决冲突。

【问题讨论】:

  • 我的第一个问题是你的 Git 存储库中有什么东西需要这么长时间?它不可能是网络,因为硬重置发生在本地。您的其他基本 Git 命令是否也需要很长时间?
  • @TimBiegeleisen 大小为 500MB,有 107903 个文件。如果文件数量繁琐,这是否是克隆需要这么长时间的原因或将需要这么长时间?
  • 那么克隆 500MB 将需要很长时间才能让这么多数据通过您的网络。
  • @TimBiegeleisen 他们很慢,但不是一个工作日的慢,比如慢了 10 分钟。
  • 我给了你一个赞成票。希望 Git 专家能看到这一点,并且比我以前更有帮助。

标签: git


【解决方案1】:

第一个测试是在另一个文件夹中执行 git clone,获取新副本并检查该操作是否需要数小时。

然后,您可以将当前工作树中的更改集成到新工作树中。

但如果问题仍然存在(不仅限于您),那么您需要安装 GVFS (Git Virtual File System)保证快速响应任何 Git处理大型回购时的操作。

【讨论】:

    猜你喜欢
    • 2018-01-13
    • 2014-08-25
    • 2011-12-19
    • 1970-01-01
    • 2020-04-07
    • 1970-01-01
    • 2017-12-10
    • 2011-09-06
    相关资源
    最近更新 更多