Git.我怎么能跟踪文件(文件夹)只在一个分支



我的目标是跟踪文件,但不受其中更改的影响。实际上它是IDE特定的项目设置文件夹。我想保存它。但是当我跟踪它,提交到单独的分支并检出master时,它也在master中被跟踪了。

现在项目设置的更改出现在工作目录中。这让我很困惑,我不得不把更改放在我的IDE中单独的更改集。虽然我不喜欢它。是否有可能在工作目录中隐藏这些更改,但仍然在单独的分支中跟踪这些更改?

任何建议将不胜感激!(我相信有更优雅的解决方案)

这不是git的好用例。Git是用来跟踪内容的,而不是存储内容然后忽略它。

因此,任何实现这一目标的机制都不是最优的。

  • .gitignore只忽略未跟踪的内容,所以它不适用于跟踪的内容。

  • git update-index --assume-unchanged基本上是对git的承诺,即文件不会更改。改变它就违背了这个承诺,带来了与之相关的所有问题。切换分支或合并可能会失败,因为git突然发现文件发生了变化。

你必须问自己为什么需要跟踪这些文件。如果您需要某种可以分发的模板,那么将其作为模板添加(在不同的名称下),并跟踪它,但忽略可以更改的实际文件。

为清晰编辑:

本例中的模板并没有什么特别之处。这只是你想要追踪的数据,只是用了不同的名字。任何需要数据的人都可以复制模板并使用它。

您可以为自己的IDE文件使用单独的存储库。

  1. 您可以将IDE存储库放在主项目的子目录中。git status将始终显示您的IDE文件夹为未跟踪,但您可以避免它与.gitignore。不要尝试添加和提交子存储库。
  2. 最好的方法是不要将IDE文件/目录与主项目混合。将IDE文件放在另一个目录中,并使用适当的名称将它们符号链接到工作目录中。此方案仅适用于Linux/Mac操作系统。

最新更新