202

我可以告诉 git 忽略已修改(删除)但不应提交的文件吗?

情况是我在 repo 中有一个子目录,其中包含我根本不感兴趣的东西,所以我删除了它以防止它出现在自动完成等(在 IDE 中)。

但是现在,如果我将该文件夹添加到 .gitignore,则没有任何变化,所有内容都显示为 git status 已删除。

有没有办法让 git 忽略它?

(或者,当我使用 git-svn 时,我可以将更改提交到本地 git 并确保它们不会传递到 svn 存储库吗?)

4

6 回答 6

298

查看git-update-index 手册页和 --assume-unchanged 位和相关的。

当我遇到你的问题时,我会这样做

git update-index --assume-unchanged dir-im-removing/

或特定文件

git update-index --assume-unchanged config/database.yml
于 2009-04-17T16:22:14.873 回答
41

一个更新更好的选择是 git update-index --skip-worktree不会在硬重置或拉动的新变化时丢失。

请参阅手册页

并在http://fallengamer.livejournal.com/93321.html进行比较

于 2012-02-29T17:17:23.647 回答
11

使用此代码

git update-index --assume-unchanged file-name
于 2017-04-20T05:56:41.153 回答
7

我通常做的是

git stash

git whatever-else

git stash apply

git stash clear
于 2009-03-17T21:09:44.857 回答
6

跟踪的文件不能被忽略,因此您必须先将它们从索引中删除。添加一个.gitignore忽略您不想要的目录的目录,然后删除它们,并使用git rm --cached.

于 2009-03-17T17:37:24.017 回答
0

在我的情况下有效:

git restore --staged filename

例子:git restore --staged index.js

于 2020-11-09T10:27:36.673 回答