运行 git pull 后显示许多已删除文件的 Git 状态

Posted

技术标签:

【中文标题】运行 git pull 后显示许多已删除文件的 Git 状态【英文标题】:Git status showing many deleted files after running git pull 【发布时间】:2020-12-30 02:12:24 【问题描述】:

有几个人(包括我)正在从事一个项目。在过去的一段时间里,我没有花太多时间在这上面,所以几周内也没有承诺。

用我的新更改更新我的本地存储库后,运行 git status 显示大量新文件和修改文件,这些是其他人更改或创建的文件。

我认为这是因为 git 认为最新版本是我几周前提交的版本,所以我决定先更新我的本地 repo 然后重新开始更安全。

因此我运行 git pull 来更新我的本地仓库。然后它说它不能这样做,因为很多文件是重复的(或类似的东西),所以我手动删除了本地 repo 中的文件并再次运行 git pull。完成此操作后,我检查了 git status,它现在向我显示了许多应该存在的已删除文件。

这些文件存在于 gitlab 上,但由于某种原因没有拉到我的本地仓库。

任何人都可以帮助我了解可能导致此方法或其他方法尝试的原因吗?

【问题讨论】:

【参考方案1】:

由于您手动删除了一些“重复”文件,git 认为它们在您运行 git status 时发生了变化。您不希望进行这些更改。

所以,运行 git reset --hard hash_of_your_commited_new_changes 以返回到您之前的提交,即您提到您已经“更新”了您的本地存储库。

您可以运行 git log --oneline --decorate 来识别 hash_of_your_commited_new_changes

最后,运行 git pull -r 以从其他人那里获取最新的更改,并在他们的基础上重新提交您的最后一次提交。

【讨论】:

以上是关于运行 git pull 后显示许多已删除文件的 Git 状态的主要内容,如果未能解决你的问题,请参考以下文章

Git-hub问题:显示我的laravel项目更改了87个文件

删除本地文件后 Git从远程仓库重新获取

我如何进行git pull更新?

Git push成功后,远程仓库将文件显示为已删除,且找不到push的文件

Git从库中移除已删除大文件

git restore 删除后未提交的已删除文件