Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git 正在删除一个被忽略的文件_Git_Gitignore - Fatal编程技术网

Git 正在删除一个被忽略的文件

Git 正在删除一个被忽略的文件,git,gitignore,Git,Gitignore,几天前,我注意到有一个提交的文件在.gitignore中也被忽略了。这是该站点的主配置文件,我的开发副本不知何故已经提交 为了删除该文件,我创建了一个commit,删除了.gitignore中的行,并删除了相关文件。然后我创建了另一个提交,将.gitignore行添加回 但是现在,每当这些提交应用到某人的环境时,他们忽略的配置文件就会被删除!我如何修复回购协议,使其不再发生?你真的不能。如果您当前的头提交跟踪该文件并将其包含在内,而后续的提交没有跟踪该文件,那么Git将通过删除该文件来应用此差异

几天前,我注意到有一个提交的文件在.gitignore中也被忽略了。这是该站点的主配置文件,我的开发副本不知何故已经提交

为了删除该文件,我创建了一个commit,删除了.gitignore中的行,并删除了相关文件。然后我创建了另一个提交,将.gitignore行添加回


但是现在,每当这些提交应用到某人的环境时,他们忽略的配置文件就会被删除!我如何修复回购协议,使其不再发生?

你真的不能。如果您当前的头提交跟踪该文件并将其包含在内,而后续的提交没有跟踪该文件,那么Git将通过删除该文件来应用此差异,因为这就是历史记录中发生的情况。如果要保存该文件,可以在签出新版本之前临时重命名它,以防止Git删除它,也可以使用
Git checkout oldcommit--config.file
签出它的旧版本

.gitignore
文件的作用不是阻止在存储库中添加或删除任何内容。它只影响Git检测未跟踪文件的机制,例如,通过从
Git status
的输出中隐藏被忽略(但未跟踪!)的文件。但这不会阻止您明确地从存储库中添加或删除文件


也就是说,您不必从
.gitignore
中删除该行即可从存储库中删除该文件。您可以使用
git rm--cached config.file
来取消跟踪它;无需物理删除该文件,也无需触摸gitignore。

如果该文件已在您的存储库中,我将检查: