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_Version Control - Fatal编程技术网

取消跟踪Git中的跟踪文件——但仅在特定分支中?

取消跟踪Git中的跟踪文件——但仅在特定分支中?,git,version-control,Git,Version Control,最初,我的主分支中包含了所有内容 然后,我决定分为Mac和Windows分支,让主分支只跟踪源代码文件。因此,我开始只在主分支中对源代码文件进行阶段性更改,并根据需要将这些源代码更改与Mac和Windows分支合并 问题是,当我最初跟踪主分支中的所有内容时,我也跟踪了项目文件。因此,我将向项目中添加新文件,并在Mac和Windows中编译它,但在切换回主分支时,项目文件也将切换回旧版本,导致编译失败 那么,我现在如何停止跟踪主分支中的项目文件呢?我不想停止在Mac或Windows分支中跟踪它,也

最初,我的主分支中包含了所有内容

然后,我决定分为Mac和Windows分支,让主分支只跟踪源代码文件。因此,我开始只在主分支中对源代码文件进行阶段性更改,并根据需要将这些源代码更改与Mac和Windows分支合并

问题是,当我最初跟踪主分支中的所有内容时,我也跟踪了项目文件。因此,我将向项目中添加新文件,并在Mac和Windows中编译它,但在切换回主分支时,项目文件也将切换回旧版本,导致编译失败

那么,我现在如何停止跟踪主分支中的项目文件呢?我不想停止在Mac或Windows分支中跟踪它,也不想从主分支的早期版本中删除它

git rm --cached projectFile

将删除索引中的文件,因此不再跟踪它,但不会实际删除它。

Aha,谢谢!这将仅针对当前分支取消跟踪,还是针对所有分支取消跟踪?仅针对当前分支;就像git add一样。啊哈,很有趣。不幸的是,每当我切换到主分支时,项目文件也会被删除。我能让它只更改跟踪的文件吗?嗯,我不确定这是否可行,因为切换分支总是先删除旧分支中跟踪的所有文件,然后用新分支中的文件替换它。因此,如果你的分支也没有跟踪到该文件,它只会留在那里,我想这不是你想要的。也许你可以给
主文件
的项目文件(或者更好的是,平台特定的文件)一个不同的文件名?@ErrorUserName:Branchs指向提交。任何未承诺的都是未承诺的。暂存的更改,如rm--cached
创建的删除,是暂存的,而不是提交的,因此它们不会绑定到分支。就像未跟踪的文件和本地修改一样,它们可以在切换分支时完好无损地保存在那里。(我认为这解释了你的一些困惑。)