Anda hanya perlu memastikan bahwa repositori tahu di mana pohon kerja berada dan sebaliknya.
Untuk membiarkan repositori tahu di mana pohon kerja berada, setel nilai konfigurasi core.worktree
. Untuk membiarkan pohon pekerjaan tahu di mana direktori git berada, tambahkan file bernama .git (bukan folder!) Dan tambahkan baris seperti
gitdir: /path/to/repo.git
Sejak git 1.7.5 perintah init mempelajari opsi tambahan untuk ini.
Anda dapat menginisialisasi repositori terpisah yang baru dengan
git init --separate-git-dir /path/to/repo.git
Ini akan menginisialisasi repositori git di direktori yang terpisah dan menambahkan file .git di direktori saat ini, yang merupakan direktori kerja repositori baru.
Sebelumnya ke 1.7.5 Anda harus menggunakan parameter yang sedikit berbeda dan menambahkan file .git sendiri.
Untuk menginisialisasi repositori terpisah, perintah berikut menautkan work-tree dengan repositori:
git --git-dir=/path/to/repo.git --work-tree=. init && echo "gitdir: /path/to/repo.git" > .git
Direktori Anda saat ini adalah pohon kerja dan git akan menggunakan repositori di /path/to/repo.git
. Perintah init secara otomatis akan menetapkan core.worktree
nilai seperti yang ditentukan dengan --git-dir
parameter.
Anda bahkan dapat menambahkan alias untuk ini:
[alias]
initexternal = !"f() { git --work-tree=. --git-dir=\"$1\" init && echo \"gitdir: $1\" >> .git; }; f"
Gunakan kontrol versi git pada direktori yang berfungsi hanya baca
Dengan pengetahuan di atas, Anda bahkan dapat mengatur kontrol versi git untuk direktori yang berfungsi tanpa memiliki izin menulis. Jika Anda menggunakan --git-dir
setiap perintah git atau mengeksekusi setiap perintah dari dalam repositori (alih-alih direktori kerja), Anda dapat meninggalkan file .git dan karenanya tidak perlu membuat file apa pun di dalam direktori kerja. Lihat juga jawaban Leo