git'e klasör eklenemiyor


21

Yeni bir klasör ekledim (aslında başka bir repodan kopyaladım ve bunu unuttum), sonra orada bazı değişiklikler yaptım. Ayrıca git add yapmaya çalıştığımda başka yerlerde çok fazla değişiklik yaptım

# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#   (commit or discard the untracked or modified content in submodules)
#
#   modified:   protected/ext/SpecificFolder (modified content)
#

Sonra belki .git klasörü olduğunu hatırlıyorum (çünkü daha önce orada klon gitmiştim). Bu klasöre gittim ve gerekli olmayan dosyaları (klasörler) ve .git klasörünü de kaldırdım. Git durumunu kontrol ettim, garip bir şey yok. Sonra başka bir şubeye taahhüt ve ödeme ve aniden bu klasörün son taahhüt eklendi olmadığını anladım. Aslında klasör eklendi ancak içindeki dosyalar yok sayıldı. Şimdi git addo klasör için yapmaya çalıştığımda bile hiçbir şey olmuyor ve git statusherhangi bir değişiklik göstermiyor :(

Ne yapabilirim ?


6
Karşılaştığım sorunla başka birinin bu sayfaya gelmesi durumunda: Git'e bir alt klasörde dosya ekleyemedim. Daha sonra bu alt klasörün kendi .gitdeposuna sahip olduğunu ve dosyaların ana klasördeki depo yerine o depoya eklendiğini gördüm . Git GUI'sinde bile, bu alt klasör klasör yerine bir dosya olarak göründü.
Nav

Yanıtlar:


29

Git dizinleri izlemez; ama sadece içindeki dosyalar.

addHiçbir şey yapmamaya neden olan bir yok sayma düzenine sahip olabileceğiniz anlaşılıyor . Yok sayılan dosyaları git status --ignored; daha sonra takip edilebilirlergit add --force protected/ext/SpecificFolder


1
Hayır git status --ignored
sunulmuyor

1
Bu emir hayat kurtarıcıydı. O olmadan, hangi dizinin göz ardı edildiğini asla anlayamazdım.
IgorGanapolsky

wow .....
Git'i bir

1
Aha, sonunda. Bu benim sorunumdu. .Gitignore'u ebeveynden ve alt modüllere kopyalamıştım. 'Config /' yok sayılıyor ve daha sonra config adlı kaynak dizin altında bir dizin oluşturdum. Kurye eklenemedi. Sorun çözüldü şimdi teşekkür ederim :-)
Avec

7

Git EMPTY dizinlerini izlemiyor. Birden fazla alt dizin katmanı içeren bir projeniz varsa, git aslında içindeki dosyaları içeren dizinleri izler. Eğer olmasaydı, o zaman düz bir dosya deposu olurdu.


Vay be bu çok basit bir şey ama lanet olsun. Bunu okudum ve "Aman Tanrım, işte tam olarak bu" dedim
Brian, Reinstate Monica'ya

3

Bu kullanıcının tam olarak ne yaptığını yaptım: Mevcut bir git deposunu başka bir tanesine ekleyin.

Belirti git'in bu dizini bir dosya olarak tanıması ve böylece dizinin dosyalarını ekleyememesiydi.

Bu soruyu çözmek için, .gitklasördeki klasörü sildim, o klasörü başka bir dizine taşıdım, dizini temizledim, depomdaki dizini çıkardım ve sonra dizini düzgün bir şekilde ekleyebildim.

Bunun ahlakı: bir başkasının içine depo eklemeyin.


5
Ayrıca çalıştırarak da düzeltilebilirgit rm --cached path_to_submodule
Victor Marchuk


0

Bu dizine bir dosya eklemeyi deneyin.

$ git add my-dir/index.html

Aşağıdaki gibi bir çıktı görürseniz:

The following paths are ignored by one of your .gitignore files:
my-dir/index.html
Use -f if you really want to add them.
fatal: no files added

Gitignorlarınızdan birinde bu dizini eklemenizi engelleyen bir kural var.


0

Bir alt modül olanı normal bir alt klasöre dönüştürmeye çalıştıktan sonra benzer yan etkiler buldum.

Dönüştürmeye çalıştığım klasörü yeniden eklemek işe yaramış gibi göründü, ancak içindeki dosyaların gerçekten eklenmediği ortaya çıktı.

İçine özel bir dosya eklemeyi denemek bana daha iyi bir uyarı verdi

git add sites/all/modules/contrib/transclusion/transclusion.module 
fatal: Pathspec 'sites/all/modules/contrib/transclusion/transclusion.module' is in submodule 'sites/all/modules/contrib/transclusion'
  • bu nedenle, düzgün bir şekilde yapmak için iyi belgelenmiş bir işlem olmadığı için eski alt modülü manuel olarak kaldırmaya çalıştığım yolla ilgiliydi. - Sadece .gitmodules'ten sildim. Alt modülün gölgelerini ortadan kaldırmak için başka şeyler de gerekliydi.
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.