1

我对 git 中的项目和类文件处理有一个一般性问题:

当然,解决方案应该适用于具有特定环境文件的不同类型的项目,这些文件对于原始构建过程不是必需的,而仅用于设置用户环境:

拥有在 Eclipse 工作区中交互的 x 个项目。这些项目中的每一个都有一个 .classpath 和一个 .project 文件以及一个 .settings 文件夹。

现在,我想确保存储库中有这些文件的初始“原始”版本,这些文件必须适应使用此存储库的用户,并确保这些文件不会由于这种环境而被提交-具体修改过程。

我可以避免这种情况吗?git里面有没有一种flag,表示以后会忽略文件的修改?

.gitignore 在这种情况下不是有效的选项,因为包含在此文件中的文件在最初提交时不会被忽略。

4

3 回答 3

2

在我看来这是不可能的。但是有一个简单的替代方案:不要将初始版本作为文件提供在 git 存储库中,而是由脚本创建或从另一个位置复制(它本身可能再次在您的存储库中)。然后你可以从一开始就 gitignore 你的文件。

例如,一个非常简单的解决方案是将Ant 构建器添加到项目的构建器列表中。该 Ant 脚本可以查看您的设置文件并从某个共享位置复制它们、就地修改它们或做任何其他神奇的事情。

于 2013-04-25T15:25:31.000 回答
0

我认为您正在寻找锁定 文件。查看链接,让我知道这是否是您要查找的内容。

于 2013-04-25T07:31:22.077 回答
0

您可能希望使用git update-index --assume-unchangedwhich 将在提交时忽略这些文件。

不过要小心,如果它们在其他地方被改变(例如被没有改变的人assume-unchanged):

如果 Git 需要修改索引中的这个文件,例如在提交合并时,Git 将失败(优雅地);因此,如果假定的未跟踪文件在上游发生更改,您将需要手动处理这种情况。

考虑到您想要应用它的文件类型,它可能不会那么频繁(例如,当您更新项目类路径时,这应该很少......),因此用户(或 repo 中的脚本)可以小心它自己。

于 2016-10-07T11:32:10.540 回答