Saya cukup baru menggunakan git dan bertanya-tanya apakah boleh menyalin repositori Git dengan perintah UNIX yang umum (seperti cp
atau tar
/ untag
), daripada melalui git clone
.
Saya dalam situasi di mana saya memiliki lingkungan produksi (python virtual) yang diperiksa beberapa kode di git di dalamnya. Saya bertanya-tanya apakah itu ide buruk dari perspektif git untuk menyalin seluruh lingkungan menggunakan tar
atau sesuatu. Pendekatan ini akan nyaman untuk membuat salinan cepat basis kode / lingkungan.
Kekhawatiran saya adalah bahwa mungkin git clone mengaitkan beberapa id unik dengan copy pekerjaan yang dapat menyebabkan konflik jika ada dua copy pekerjaan di mana satu adalah filesystem yang disalin dari yang lain.
Jawaban:
Tidak apa-apa.
git
menyimpan semua riwayatnya, melakukan, dll di situs - ini adalah properti mendasar dari DCVS.Secara teknis,
git
dapat beroperasi dengan baik dengan repositori yang disalin berkeliling di mana-mana, karena inti dari DCVS adalah bahwa ia tidak harus tahu apa yang terjadi di luar repositori yang diberikan , dan pada kenyataannya tidak kecuali Anda mengatakannya .Prinsip yang sama berlaku di sini.
sumber
git remote remove origin
, yang menghentikan Git dari menggunakan repositori induk sebagai upstream.Anda harus dapat menyalin seluruh direktori kerja ke tempat lain di sistem Anda dan membuatnya berfungsi seperti biasa ketika menggunakan Git, Hg, atau SVN. Saya tidak dapat mengomentari SCM lainnya.
sumber
Ini adalah kasus penggunaan yang lebih tidak biasa, tetapi ...
Saya telah melihat
repo
utilitas membuat tautan simbolik di.git
direktori. Dalam hal itu, ketika Anda melakukan salinan, Anda ingin memastikan bahwa Anda menautkan tautan simbolik. Misalnya:sumber
Tidak apa-apa, tetapi jika Anda akan membagikan repo Anda dengan orang lain, harap pertimbangkan hal berikut :
config
File Anda mungkin memiliki remote, orang lain mungkin tidak peduli.logs
Folder Anda akan memiliki referensi yang mungkin tidak ingin Anda bagikan. Git sangat hebat dalam membiarkan Anda melakukan hal-hal buruk di komputer Anda sampai Anda merasa nyaman dengan hasil akhirnya, dan kemudian mendorongnya ke remote untuk (sesekali) membaginya. Beberapa dari sejarah buruk itu mungkin ada di reflog Anda, jadi lebih baik untuk tidak membagikannya IMHO.info/exclude
File Anda mungkin mengabaikan beberapa file yang hanya ingin Anda abaikan.sumber