2014-02-18 32 views
5

我最近開始使用Git/SourceTree/Bitbucket。我可以安全地將本地Git存儲庫移動到我的硬盤驅動器中的其他位置嗎?我可以安全地將本地Git存儲庫移動到我的硬盤中的其他位置嗎?

因爲某些大文件被Git忽略,所以我無法真正從遠程存儲庫中取得存儲庫以獲取所有文件的確切副本。

如果我只是將包含.git的主目錄移動或複製到別處,會不會導致Git混亂?如果絕對路徑對Git很重要,我想它會,但我不確定。

+0

這裏有兩個問題 - 「我可以移動嗎?」和「會移動導致問題?」。答案分別爲是和否。試着問一個問題,而不是相反的問題。 – patthoyts

+0

http://stackoverflow.com/q/7949​​036/291641 – patthoyts

回答

10

不,移動或複製.git/文件夾不會導致git問題; git沒有以任何方式連接到您的回購站,並且git不關心絕對路徑,只關注項目文件夾內的相對路徑。

Git只是您的機器上的一個可執行文件。它可以在任何地方運行,只要它在你的路上。我經常拖動我的各種.git/文件夾到不同的地方,甚至拖到我的拇指驅動器上(通常拖動整個存儲庫文件夾,但我也只是自己帶了.git/文件夾)。關於git的好處在於,從字面上看,所有關於回購的東西都在該文件夾中。你甚至不需要帶上工作樹文件。如果您將.git/文件夾或其副本放入其他文件夾中,則可以在該文件夾中輸入git checkout master,然後git將在那裏重建工作樹。

這是關於所有數據的偉大事情。 Git根本沒有連接到你的倉庫。您只需調用git來對存儲庫進行操作,以創建或更改那裏存在的數據,然後再讓它完全重新啓動。

請記住,您可以克隆自己的本地回購:

$ git clone oldrepo newrepo 

Git會複製oldreponewreponewrepo可以在您的本地文件系統的任何地方的路徑),在此過程中創建的文件夾。此外,newrepo將自動添加一個遠程 - origin - 指向oldrepo,因此您可以在oldrepo中執行工作,並在newrepo文件夾中將其取回。如果你不想要那個遙控器(這是無害的),你可以在新回購中做git remote rm origin。如果您想要將複製的回購鉤掛回到在線服務器,只需執行git remote add origin <url>即可。如果您不確定網址是什麼,請在oldrepo中執行git remote -v,然後複製該網址。

+1

可能的重複這可能會令人困惑 - 是否回答標題中的問題?或最後一個句子中的問題。 – patthoyts

+0

謝謝。我希望清理混亂的位。 –

+0

謝謝你的直接和很好的答案。只是爲了確認一些事情,那些被'.gitignore'文件忽略的文件呢?我猜'git clone'是爲了忽略這些文件,所以'newrepo'不會擁有它們。我對嗎? –

相關問題