首页 > 解决方案 > 在 git pull 上保留已删除的文件

问题描述

在我需要拉的几个提交中,有几个删除。这些文件属于一些不应该出现在 git 存储库中的基本项目文件(这首先是我们的错误,是的)。所以我担心删除这些文件可能会导致一些故障,我不想花时间修复它。

我正在寻找类似的东西

git rm --cached

从远程仓库中删除文件但留在本地

我需要类似的东西

    git pull --cached

不会删除本地文件,但会将它们从跟踪的文件中删除

标签: gitgit-pullgit-rm

解决方案


没有简单的方法可以做到这一点 -git pull无论如何都会删除已删除的文件。您可以从以前的提交中恢复已删除的文件。提供删除文件的提交是分支中的最后一次提交:

git pull
git checkout @~ -- `git diff --diff-filter=D --name-only @~`
git reset -- `git diff --diff-filter=D --name-only @~`

这将从上次提交之前的提交中恢复已删除的文件。git reset需要从索引(缓存)中删除文件:git checkout将它们放在那里。


推荐阅读