2015-06-10 64 views
1

我正在做一個簡單的git init C:\XXX從我的主機運行到另一個從機上執行。 C:\XXX是奴隸的路徑。假設它會創建一個非裸存儲庫,因爲我沒有提供--bare選項。我還查看了系統,從機中的全局配置設置,並特別設置了這些選項中的bare = false選項。但即使在運行git init後,我可以看到本地配置爲bare = trueGIT INIT沒有創建工作樹

默認情況下,init命令從哪裏獲取裸設置?

+0

我不清楚主機和從機的角色在這裏。 'C:\ XXX'是否都可以訪問?兩臺機器有不同的系統或全局設置嗎? (例如,如果您在機器A上運行'git init C:\ XXX',那麼只有A的配置文件中的設置很重要。) – chepner

+0

我將此jenkins作業配置爲在從機上運行。該作業有一系列使用從屬工作區目錄的git命令。 C:\ XXX是從站中的工作空間目錄。當jenkins執行git init命令時,它創建一個裸倉庫。我試圖在init之前顯示git config --list,並且沒有裸設置設置爲true,但是在init命令之後我做了同樣的事情,並且我看到一個bare = true條目。我也嘗試從slave機器命令提示符直接執行這些命令,它確實創建了一個非裸存儲庫 –

+0

主機上'bare'的全局設置是什麼? –

回答

0

當您在主機上運行git init <path>時,Git應用程序將在主服務器上運行。它使用該機器的全局配置,你可能有bare=true

爲了解決這個問題,你可以使用這些選項之一:

  1. 登錄到從機與SSH和運行git init <path>
  2. 直接預製.git複製到所選路徑上的奴隸。這給你一個選擇使用調整的存儲庫。例如。你可以添加git鉤子。
+0

解決了!它以某種方式與我創建的奴隸機器有關。我更新了大量的配置文件,使bare = false並可能搞砸了一些東西。所以我刪除了奴隸並創建了另一個奴隸,並使用了我需要的slave.jar來啓動新的奴隸。 –

+0

謝謝大家的反饋。尼克 - > git init正在奴隸機器上運行,因爲jenkins工作在奴隸上運行,它也使用奴隸git,因爲我提供了奴隸git路徑的工具位置 –

+0

@ARUNNAIR哦,我明白了。你介意我是否重寫我的答案以包含你的解決方案? –