2017-08-01 56 views
1

我跑这个命令保存更改到存储库级别GIT配置

git config --local merge.ours.driver true 

它应该做的git的\ config文件中的变化(这是库级别的配置文件)。它确实做出了这一改变。

我可以看到这个变化,当我运行

git config --list 

但我没有看到这种变化,当我运行从一个不同的用户的机器相同的list命令。我如何在整个资料库中坚持这一改变?

它不会显示在“挂起的更改”中,所以我无法检查此更改。 .git文件夹被“忽略”了吗?我无法在.gitignore中找到它。

回答

1

配置文件.git/config本身并不是版本控制的文件。

不能是一个相当基本的水平:它必须存在,并充满数据,然后再开始进行任何版本控制。它在可能指的是(即,包括,甚至被切换)在该点之后的版本控制文件,但是Git不这样做。

您可以做的是提供一个脚本,该脚本运行应该运行的任何配置项目,并将该脚本提交到存储库。然后用户可以运行该脚本,该脚本可以根据需要检查并更正其配置。如果你正在设置这样的merge.ours.driver,那么当Git在合并期间使用他们的版本时,你可能会有点震惊,除非有Git使用他们的版本,否则Git不会调用自定义驱动程序。在双方合并的变化。如果有一个片面的变化,即,他们的版本,但不是我们的,Git的只是需要改变。)

+0

什么是具有储存库级配置文件的目的如果它不能坚持这些变化呢?我如何配置存储库GIT设置? 有关合并我们的驱动程序的提示,您是对的。我使用它来在合并分支时锁定文件,理想情况下,这些文件在第一次配置后不会被触摸,所以它们不应该被GIT拾取,即使它们不同。如果它们改变了,是的,GIT会把它拿起来,用户必须根据需要手动合并它。 –

+0

*拥有存储库级配置文件的目的是什么... *配置存储库的设置。但设置是*每个存储库*,不复制到其他克隆。这是没有意义的:例如,如果我克隆你的存储库,我不应该得到你的分支设置。我有我自己的分支,我有自己的设置。 (这里更好的一点是,合并驱动不应该首先在'.git/config'中配置:它们由*'.gitattributes'驱动,它是版本控制的,所以它们应该是*可定义的在*'.gitattributes'中。) – torek

+0

我现在明白存储库是一个本地实体 - 而不是服务器实体。文件的合并条目位于.gitattributes中,但启用它们的驱动程序必须位于config [merge“our”] \t driver = true。有没有办法将它移动到gitattributes? –