为什么 git 停滞不前?

问题描述 投票:0回答:3

我在本地使用git。在一个目录(我们称之为项目)中,我初始化了一个 git 存储库。当我创建/修改文件时,我使用了“git add file”和“git commit”。这些文件现在变成了两个看似独立的项目的混合体,因此我将project1 文件放入我们称为Project1 的子目录中,将project2 文件放入我们称为Project2 的子目录中。我将父目录名称从 Project 更改为 Project12。

完成所有这些操作后,我意识到我忽略了考虑我的 git 存储库,因此我将所有文件移回目录 Project12 以及 Project1 和 Project2 旁边,并计划在将它们移回之前“git add --all”进入各自的子目录。

但是当我使用“git add --all”时,git 停滞了。除了下一行上的光标闪烁了一段不合时宜的时间之外,什么也没发生。 “Git status”有各种各样的混乱的删除和新文件,来自所有移动的文件。我虽然会尝试清除暂存区域,然后添加/提交。根据我所做的研究,我尝试了“git重置”。这不仅没有解决“git add --all”之后的停顿问题,而且现在 git 在“git status”之后停顿,并且光标在下一行闪烁。

我不想“git reset --hard”,因为有一些文件我已经更改但未提交,所以我不想丢失这些更改。我尝试了“git stash”,但这也停滞了。

我应该补充一点,我仍然可以“git add file”,但是文件相当多,我最终想知道出了什么问题。

我对 git 有点陌生,所以如果有人能解释一下他们认为这里发生了什么,我将不胜感激。我不确定此时要粘贴什么输出,因为我只是看到一个闪烁的光标。

目标是将文件放入各自的子目录中,并继续添加/提交到同一分支。

谢谢!

git
3个回答
2
投票

有一个数据文件太大,导致 git 停止运行。由于每次程序运行时都会创建数据文件,因此可以选择删除数据文件,这解决了停顿问题。


1
投票

摆脱这种混乱局面的一种方法是:

  • 将您的存储库克隆到本地的单独存储库中
  • 检查该克隆是否确实是您在执行所有这些移动/添加/删除操作之前所拥有的克隆...
    (如果没有,请检查或重置为正确的 SHA1,以获得重组之前的内容)
  • 在新的存储库中重现您需要的内容,并在那里尝试您的
    git add -A

我们的想法是不要在看起来有点不稳定的原始存储库中保留太多时间,并检查问题是否仍然存在于新克隆的存储库中。


0
投票

此问题主要是由目录和子目录中包含大文件引起的。您应该使用启发式方法来处理这种情况。要确定特定目录,请使用详细标签 (-v) 和 git add 命令。

© www.soinside.com 2019 - 2024. All rights reserved.