2016-08-22 72 views
5

我有分支master忽略.idea在其.gitignore。 从那以后,我创建了分支noIgnore,它没有.gitignore。我发现checkout master删除.idea如何切换到忽略文件而不删除这些文件的git分支?

这不是我想要的行为。我想保留.idea,只是不跟踪它,而不是master。我怎么做?

+0

如果你使用'.idea'作为提交文件,'git不知道你想保留它(但忽略它),而不是在你签出一个不同的分支时删除它。 –

+0

在这种情况下,也许我应该问一个不同的问题:大多数情况下,我想忽略.idea,但偶尔我想保留它,以备份以及差异目的,我该如何实现? –

+0

我的第一个想法是在同一棵树上使用两个git repos,但后来我意识到.gitignore无论如何都是每个dir。 –

回答

0

它删除.idea,因为这就是checkout所做的事情,它检查出没有.idea的主人。尝试将--no-track添加到您的命令。

+2

不确定'--no-track'在这里的相关性 - 这是为了防止它执行上游跟踪。 –

2

你可以停止回购跟踪对文件的更改

git update-index --skip-worktree .idea 

既然你在另一个分支跟踪它,那么当你做出改变,你会想重新开始跟踪变化

git update-index --no-skip-worktree .idea 

当您厌倦手动完成此操作时,您可以在主站,停止跟踪或其他开始跟踪的情况下创建后结帐挂钩。

相关问题