Sadece deponun çalışma ağacının nerede olduğunu bildiğinden emin olmanız gerekir ve bunun tersi de geçerlidir.
Deponun çalışma ağacının nerede olduğunu bilmesini sağlamak için konfigürasyon değerini ayarlayın core.worktree
. Çalışma ağacının git dizininin nerede olduğunu bilmesini sağlamak için .git adlı bir dosya ekleyin (klasör değil!) Ve şöyle bir satır ekleyin:
gitdir: /path/to/repo.git
Git 1.7.5'ten beri init komutu bunun için ekstra bir seçenek öğrendi.
Yeni bir ayrı depoyu şu şekilde başlatabilirsiniz:
git init --separate-git-dir /path/to/repo.git
Bu, git deposunu ayrı dizinde başlatacak ve .git dosyasını yeni deponun çalışma dizini olan geçerli dizine ekleyecektir.
1.7.5 sürümünden önce, biraz farklı parametreler kullanmanız ve .git dosyasını kendiniz eklemeniz gerekiyordu.
Ayrı bir depoyu başlatmak için aşağıdaki komut çalışma ağacını havuza bağlar:
git --git-dir=/path/to/repo.git --work-tree=. init && echo "gitdir: /path/to/repo.git" > .git
Geçerli dizininiz çalışma ağacı olacak ve git adresindeki depoyu kullanacak /path/to/repo.git
. İnit komutu, core.worktree
değeri --git-dir
parametre ile belirtildiği gibi otomatik olarak ayarlayacaktır .
Bunun için bir takma ad bile ekleyebilirsiniz:
[alias]
initexternal = !"f() { git --work-tree=. --git-dir=\"$1\" init && echo \"gitdir: $1\" >> .git; }; f"
Git sürüm denetimini salt okunur bir çalışma dizininde kullanın
Yukarıdaki bilgilerle, yazma izinlerine sahip olmadan bir çalışma dizini için git sürüm kontrolünü bile kurabilirsiniz. Her iki kullanım Eğer varsa --git-dir
her git komutu veya (yerine çalışma dizininin) depo içinde her komutu çalıştırmak, sen .git dosyayı bırakabilir ve bu nedenle çalışma dizinindeki herhangi dosyaları oluşturmak gerekmez. Leos cevabına da bakın