İşte tanımıdır çıplak depo dan gitglossary :
Çıplak depo, normalde, revizyon denetimi altındaki dosyaların yerel olarak teslim alınmış bir kopyasına sahip olmayan .git sonekine sahip uygun şekilde adlandırılmış bir dizindir. Yani, normalde gizli .git alt dizininde bulunan tüm Git yönetim ve kontrol dosyaları bunun yerine doğrudan repository.git dizininde bulunur ve başka hiçbir dosya bulunmaz ve teslim alınmaz. Genellikle halka açık depoların yayıncıları çıplak depoları kullanılabilir hale getirir.
Buraya bir "yerel depo" ile oynuyordum ve uzak bir depo gibi istediğim her şeyi yapabilmek istediğim için buraya geldim. Sadece etrafta oynuyordum, git'i öğrenmeye çalışıyordum. Bu yanıtı okumak isteyen herkes için durumun bu olduğunu varsayacağım.
Ben ancak sadece dosyaya gidiyor (buldum bazı git kaynak kodu ile karıştırmak sonra) gibi görünüyor, bir uzman görüşüne veya bazı özel karşı-örnekler için isterdim .git/config
ve ayar çekirdek niteliği çıplak için gerçek , git sen yapalım ne olursa olsun depoya uzaktan yapmak istiyorsunuz. Yani şu satırlar mevcut olmalıdır .git/config
:
[core]
...
bare = true
...
(Bu, kabaca komutun git config --bool core.bare true
yapacağı şeydir , muhtemelen daha karmaşık durumlarla başa çıkmanız önerilir)
Bu iddia için gerekçem, git kaynak kodunda, bir reponun çıplak olup olmadığını test etmenin iki farklı yolu olduğu yönünde. Birincisi, küresel bir değişkeni kontrol etmektir is_bare_repository_cfg
. Bu, yürütmenin bazı kurulum aşamalarında ayarlanır ve .git/config
dosyada bulunan değeri yansıtır . Diğeri bir işlevdir is_bare_repository()
. İşte bu işlevin tanımı:
int is_bare_repository(void)
{
/* if core.bare is not 'false', let's see if there is a work tree */
return is_bare_repository_cfg && !get_git_work_tree();
}
Ben mutlak güvenle bu demenin vakti ne de uzmanlık değil ettik, ama eğer varsa kadarıyla söyler misiniz bare
üzere özellik seti true
içinde .git/config
, bu her zaman dönmelidir 1
. Fonksiyonun geri kalanı muhtemelen aşağıdaki durum içindir:
- core.bare undefined (yani ne doğru ne de yanlış)
- Hiçbir çalışma ağacı yoktur (yani .git alt dizini ana dizindir)
Daha sonra yapabileceğim zaman bunu deneyeceğim, ancak bu, core.bare = true ayarının, config.bare dosyasını yapılandırma dosyasından kaldırmaya ve dizinleri düzgün bir şekilde ayarlamaya eşdeğer olduğunu gösteriyor gibi görünecektir .
Her halükarda, core.bare = true ayarının yapılması kesinlikle ona izin verir, ancak proje dosyalarının varlığının başka işlemlerin ters gitmesine neden olup olmayacağından emin değilim. İlginç ve veri havuzuna doğru ilerlemek git status
ve yerel olarak ne olduğunu görmek için öğretici olduğunu düşünüyorum (yani çalıştırın ve sonuçları anlamlandırın).
mv repo/.git repo.git; rm -rf repo