Kısa cevap
Çıplak depo, çalışan bir kopyası olmayan bir git deposudur, bu nedenle .git içeriği bu dizin için en üst düzeydedir.
Yerel olarak çalışmak için çıplak olmayan bir depo ve değişikliklerinizi diğer kişilerle paylaşmak için merkezi bir sunucu / hub olarak çıplak bir depo kullanın. Örneğin, github.com'da bir havuz oluşturduğunuzda, çıplak bir depo olarak oluşturulur.
Yani, bilgisayarınızda:
git init
touch README
git add README
git commit -m "initial commit"
sunucuda:
cd /srv/git/project
git init --bare
Sonra istemcide, itin:
git push username@server:/srv/git/project master
Daha sonra uzaktan kumandayı ekleyerek yazmayı kaydedebilirsiniz.
Sunucu tarafındaki depo, dosyaları düzenleyip sonra sunucu makinesinde gerçekleştirerek değil, çekme ve itme yoluyla taahhütleri alacaktır, bu nedenle çıplak bir havuzdur.
ayrıntılar
Çıplak bir depo olmayan bir havuza itebilirsiniz ve git orada bir .git deposu olduğunu öğrenecektir, ancak çoğu "hub" havuzunun çalışan bir kopyaya ihtiyacı olmadığı için, çıplak bir depo kullanmak normaldir. ve bu tür depolarda çalışan bir kopyaya sahip olmanın bir anlamı olmadığı için önerilir.
Ancak, çıplak olmayan bir depoya basarsanız, çalışma kopyasını tutarsız hale getirirsiniz ve git sizi uyarır:
remote: error: refusing to update checked out branch: refs/heads/master
remote: error: By default, updating the current branch in a non-bare repository
remote: error: is denied, because it will make the index and work tree inconsistent
remote: error: with what you pushed, and will require 'git reset --hard' to match
remote: error: the work tree to HEAD.
remote: error:
remote: error: You can set 'receive.denyCurrentBranch' configuration variable to
remote: error: 'ignore' or 'warn' in the remote repository to allow pushing into
remote: error: its current branch; however, this is not recommended unless you
remote: error: arranged to update its work tree to match what you pushed in some
remote: error: other way.
remote: error:
remote: error: To squelch this message and still keep the default behaviour, set
remote: error: 'receive.denyCurrentBranch' configuration variable to 'refuse'.
Bu uyarıyı atlayabilirsiniz. Ancak önerilen kurulum: yerel olarak çalışmak için çıplak olmayan bir depo ve itmek ve almak için bir hub veya merkezi sunucu olarak çıplak bir havuz kullanmaktır.
Çalışmayı doğrudan diğer geliştiricinin çalışma kopyasıyla paylaşmak istiyorsanız, itmek yerine birbirinden depolardan çekebilirsiniz.