我有分支master
忽略.idea
在其.gitignore
。 从那以后,我创建了分支noIgnore
,它没有.gitignore
。我发现checkout master
删除.idea
。如何切换到忽略文件而不删除这些文件的git分支?
这不是我想要的行为。我想保留.idea
,只是不跟踪它,而不是master
。我怎么做?
我有分支master
忽略.idea
在其.gitignore
。 从那以后,我创建了分支noIgnore
,它没有.gitignore
。我发现checkout master
删除.idea
。如何切换到忽略文件而不删除这些文件的git分支?
这不是我想要的行为。我想保留.idea
,只是不跟踪它,而不是master
。我怎么做?
它删除.idea,因为这就是checkout所做的事情,它检查出没有.idea的主人。尝试将--no-track
添加到您的命令。
不确定'--no-track'在这里的相关性 - 这是为了防止它执行上游跟踪。 –
你可以停止回购跟踪对文件的更改
git update-index --skip-worktree .idea
既然你在另一个分支跟踪它,那么当你做出改变,你会想重新开始跟踪变化
git update-index --no-skip-worktree .idea
当您厌倦手动完成此操作时,您可以在主站,停止跟踪或其他开始跟踪的情况下创建后结帐挂钩。
如果你使用'.idea'作为提交文件,'git不知道你想保留它(但忽略它),而不是在你签出一个不同的分支时删除它。 –
在这种情况下,也许我应该问一个不同的问题:大多数情况下,我想忽略.idea,但偶尔我想保留它,以备份以及差异目的,我该如何实现? –
我的第一个想法是在同一棵树上使用两个git repos,但后来我意识到.gitignore无论如何都是每个dir。 –