我做了git pull,发现我的同事推送了几个我想在克隆中忽略的文件。我想取消跟踪这些文件,并在.git/info/exclude
中忽略它们,但是无需修改远程存储库(我对存储库有贡献的权利,但是我不想与我的同事争论)。怎么办?
当我执行git rm --cached
时,删除操作将被提交。
我做了git pull,发现我的同事推送了几个我想在克隆中忽略的文件。我想取消跟踪这些文件,并在.git/info/exclude
中忽略它们,但是无需修改远程存储库(我对存储库有贡献的权利,但是我不想与我的同事争论)。怎么办?
当我执行git rm --cached
时,删除操作将被提交。
如果您使用的是最新版本的Git(2.25),则可以尝试使用sparse checkout功能将某些目录或文件仅放入工作副本中。
或者,可以通过运行将文件标记为“忽略”(不是.gitignore
含义)
git update-index --skip-worktree <filename>...
,然后使用rm
(Linux / OS X / etc)或del
(我认为是Windows)将其删除。但是,只要您尝试签出修改任何这些文件的修订版,Git都会抱怨,因此这可能太烦人了,不切实际。
普通的.gitignore
机制对于已在本地提交或添加的文件不执行任何操作。