2017-08-01 57 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? –