我對使用 git 還很陌生,想知道是否可以使用常見的 UNIX 命令(如cp
或tar
/ 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
文件可能僅忽略某些文件你想要忽略。 - 你還可以有鉤子、樹枝和一堆其他你不想分享的個人物品…