2016-11-12 26 views
2

所有的git repos在工作目錄下創建.git文件夾可以改變這個文件夾的位置。你可以改變.git文件夾的位置

+0

不需要設置git存儲庫。 – Jepessen

+2

正如http://stackoverflow.com/q/505467/6309? – VonC

+0

移動文件夾將改變Git版本控制下的文件夾的範圍。但是你可以將它移到新的位置並從那裏重新開始。 –

回答

3

通知Git到別的地方創建.git目錄當您創建存儲庫:

git init --separate-git-dir=/path/to/dot-git-directory . 

git init用於創建新的本地存儲庫,但你也可以運行git init在現有的存儲庫重新初始化它的一些屬性。 .git目錄的位置就是其中之一。

documentation說:

在現有資源庫運行git init是安全的。它不會覆蓋已經存在的東西。重新運行git init的主要原因是拾取新添加的模板(或者如果給出--separate-git-dir,則將存儲庫移動到另一個位置)。

Git使用爲--separate-git-dir選項提供參數的名稱重命名.git目錄。在工作目錄中,它放置一個名爲.git而不是.git目錄的文件。 .git文件包含實際.git目錄的位置。

如果您想將.git目錄重新放回工作目錄,您只需要移除.git文件並將.git目錄替換。 git init --separate-git-dir顯然不能用於此。


如果你不想在你的工作目錄.git目錄或文件.git在所有的,那麼有兩種解決方案,但兩者都是不方便:

  1. 傳遞--git-dir=/path/to/dot-git-directory參數全部 Git命令;
  2. 設置環境變量GIT_DIR=/path/to/dot-git-directory

第一個選項需要大量的打字,並且您的Git命令變得很長且難以閱讀。

第二個選項使得很難處理多個存儲庫。每當你想在不同的倉庫中工作時,你都必須記住用正確的路徑設置$GIT_DIR環境變量;否則你會搞砸了。

+0

太棒了!我可以破解git,讓'.git'文件也在另一個文件夾中嗎?就像一個文件夾更深一樣,將目錄設置爲上層文件夾。當然,我將不得不在'.git'文件夾中運行命令,可能.. –

+0

當我使用'--separate-git-dir'時,我找不到任何.git文件來替換.git文件夾,所以實際上,這個工作在你的工作目錄中沒有.git不是嗎? – lapin

+0

@lapin如果你找不到它,這並不意味着它不會被創建。閱讀文檔:https://git-scm.com/docs/git-init#git-init---separate-git-dirltgitdirgt – axiac

相關問題