我创建了一个包含在git存储库中的文件的默认版本.重要的是,当某人克隆存储库时,他们会获得此文件的副本.但是,我想设置git,以便稍后忽略对此文件的更改. .gitignore仅适用于未跟踪的文件.
我的动机是这个文件包含机器特定的信息.我想提供默认值,同时允许人们进行不会被推回原始存储库的本地更改,从而在我们提取新更改时创建合并冲突.
我们通常非常懒惰并且使用git add .很多,所以我很确定如果我不能告诉git忽略这个文件,对它的更改将最终得到提交和推送.
总结一下,
default_values.txt添加到我的git存储库,并在有人克隆该存储库时包含该文件.git add .不应该添加default_values.txt到提交.具体来说,我维护了我的dotfiles的git存储库.我最近开始研究一台新机器,并在同一台机器上克隆了我的存储库.
现在,我希望对我的dotfiles进行一些更改,这些更改仅适用于此系统.我希望在我的存储库中忽略这些更改.
我应该继续跟踪和提交其他更改.
例如,在我的.gitconfig中,我有一个设置为:
[push]
default = simple
Run Code Online (Sandbox Code Playgroud)
现在,在我的新机器上,git的版本使用得很旧.它仍然不支持simplepush 的设置.所以,我想改变这一点,但仅限于本地.
但是,如果我对.gitconfig进行任何其他更改,我想跟踪这些.无论如何我能做到这一点?
编辑:
我知道git update-index --assume-unchanged.它的问题是git将不再跟踪我的文件,直到我反转它.然后,它将跟踪所有变化.
我希望忽略某些变化并跟踪其余变化.
我在 Eclipse 中有一个多模块 Maven Java (WAR) 项目。这取决于一堆其他 Java 项目。我们将 .settings 目录检查到源代码管理中,因为那里有许多手动建立的设置。
.settings 中的文件之一org.eclipse.wst.common.component也具有手动建立的设置。但是,Eclipse 会根据开发人员在 Eclipse 中打开的底层 JAR 项目不断修改该文件。我相信这样做是为了帮助完成这些工件的“工作区解析”。
然而,这种情况的结果是 Eclipse 不断地修改它org.eclipse.wst.common.component,开发人员不断地将它提交给源代码控制并相互争夺它。将这些文件排除在源代码控制之外是行不通的,因为其中有太多针对每个项目的手动调整。
我猜测 Eclipse 中有一个将项目设置和用户设置组合在一起的文件的设计缺陷!如果有人对如何更好地处理这个问题有任何见解,那就太好了。事实上,Eclipse-M2E 根本不适用于复杂项目的团队开发,除非每个开发人员都加载了完全相同的 Java 项目......