【问题标题】:Keep deleted files on git pull在 git pull 上保留已删除的文件
【发布时间】:2019-11-01 06:48:28
【问题描述】:

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

我正在寻找类似的东西

git rm --cached

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

我需要类似的东西

    git pull --cached

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

【问题讨论】:

  • 那么您有一个文件已从存储库中删除但保存在本地?并且其他人已经删除了该文件,所以当您拉动 git 时想要删除该文件?
  • @evolutionbox 其他人已删除该文件,我想保留它并从已跟踪移至未跟踪
  • 如果其他人已将其从 repo 中删除,则它将无法跟踪。尝试将文件移到 repo 之外的其他位置,拉取然后放回去?
  • 为什么不备份已删除的文件,拉取更改并将文件复制回来(如果需要)

标签: git git-pull git-rm


【解决方案1】:

没有简单的方法可以做到这一点——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 将它们放在那里。

【讨论】:

    猜你喜欢
    • 2018-08-06
    • 2018-02-02
    • 2011-10-29
    • 2014-10-27
    • 1970-01-01
    • 2016-10-28
    • 2021-07-28
    • 2010-11-27
    相关资源
    最近更新 更多