使用基本的 Unix 指令複製(而不是複製)一個 git 儲存庫可以嗎?

使用基本的 Unix 指令複製(而不是複製)一個 git 儲存庫可以嗎?

我對使用 git 還很陌生,想知道是否可以使用常見的 UNIX 命令(如cptar/ untag)而不是透過.git 複製 Git 儲存庫git clone

我所處的情況是,我有一個生產環境(python 虛擬),其中的一些程式碼在 git 中檢出。我想知道從 git 的角度來看,使用 atar或其他東西複製整個環境是否是一個壞主意。這種方法可以方便地快速複製程式碼庫/環境。

我擔心的是,也許 git clone 將一些唯一的 id 與工作副本關聯起來,如果存在兩個工作副本,其中一個工作副本是從另一個工作副本進行文件系統複製的,則可能會導致衝突。

答案1

完全沒問題。

git在現場儲存其所有歷史記錄、提交等 - 這是 DCVS 的基本屬性。

從技術上講,git可以在到處運行的複製儲存庫的情況下正常運行,因為 DCVS 的全部要點在於它不必知道任何給定存儲庫之外發生了什麼,事實上不會,除非你告訴它

同樣的原則也適用於此。

答案2

您應該能夠將整個工作目錄複製到系統上的任何其他位置,並使其在使用 Git、Hg 或 SVN 時繼續正常運作。我無法對其他 SCM 發表評論。

答案3

這是一個更不尋常的用例,但是...

我見過repo實用程式在目錄中建立符號連結.git。在這種情況下,當您進行複製時,您需要確保取消引用符號連結。例如:

cp -r -L <source-repo-dir> <destination-repo-dir>

答案4

沒關係,但如果您要與其他人共用您的儲存庫,請考慮以下事項:

  • 您的config檔案可能包含其他人可能不關心的遙控器。
  • 您的logs資料夾將包含您可能不想共享的引用。 Git 非常擅長讓您在電腦上做一些討厭的事情,直到您對最終結果感到滿意,然後將其推送到遠端(偶爾)共享它。一些令人討厭的歷史可能會出現在您的轉發日誌中,所以恕我直言,最好不要分享它。
  • 您的info/exclude文件可能僅忽略某些文件想要忽略。
  • 你還可以有鉤子、樹枝和一堆其他你不想分享的個人物品…

相關內容