我在添加和修改文件之前,不小心将.git文件夹移出了我的工作目录。当我在做出更改后重新放回.git文件夹时,git没有捕捉到这些更改(我使用了git add .
和 git commit -a
)。我试图重现这个问题但失败了。有没有一种方法可以强制git扫描源代码树中的更改,或者其他的修复方法?
我在添加和修改文件之前,不小心将.git文件夹移出了我的工作目录。当我在做出更改后重新放回.git文件夹时,git没有捕捉到这些更改(我使用了git add .
和 git commit -a
)。我试图重现这个问题但失败了。有没有一种方法可以强制git扫描源代码树中的更改,或者其他的修复方法?
不要试图将新的git文件夹“适配”到项目中,你应该:
在我看来,这是处理这种棘手情况的最佳方法,我自己也遇到过几次。但是,如果您的repo与中央repo之间的差异太大,就无法做到这一点,这会迫使您进行一个巨大的提交,有时并不理想。
自从您提出问题以来已经过了很长时间,希望这能为解决问题带来一些启示。
很不幸,我经常这样做。我有一个.git仓库/目录,我会在其中移动到和移出许多“发布版本”(来自另一个VC系统)。当我将.git移入时,我可以执行“git status”并查找新版本中发生了什么变化。然后我就可以毫不费力地执行“git add -A; git commit -m 'release-xyz'”。我甚至可以使用“git symbolic-ref HEAD ...”更改分支,而无需进行checkout。完成发布提交后,我将.git移出,也可以执行所有的“git diff branch1..branch2”和其他操作。
所以,我不认为你描述的是一个问题!
git status
和git diff
的组合。 - UncleZeivgit status
显示干净,但本地和远程之间存在差异。分支相同等等。 - Matt Hampel.git/index
存在吗?如果不存在,尝试执行 git checkout <分支名称>。这不会覆盖任何已更改或添加的文件。Git通过索引来查看文件是否存在或需要更改/更新,如果你删除了.git
目录然后重新创建它,可能会导致索引不存在。 - X-Istencefind . -type f | xargs touch
。 - Harald Schilly