Mümkün Gıt alt modüller içinde takip dosyaları
Sorun:eklemek ./shells/smallApps/*
.gitignore
-dosyaları ./.git/info/exclude
ne dosyalar olmadığında ./.git/
Gıt dosyaları.
Bu soruyu sorun tamamen çözülmüş değil this tread dayanmaktadır.
Ben çalıştırın
$git status ~/bin
# On branch master
nothing to commit (working directory clean)
$git ls-files ~/bin
Screen/dev/vim-open.screen
--- cut ---
Dosyaları "/smallApps/*" benim Gıt . kabukları yok unutmayın
$ls shells/smallApps/ ~/bin
devTodo extract
~/bin
Çalıştırarak benim Gıt onları eklemek istiyorum
$git add shells/smallApps/devTodo shells/smallApps/extract
fatal: Path 'shells/smallApps/devTodo' is in submodule 'shells/smallApps'
$git add .
Dosyaları nedense böyle olduğu için benim Gıt eklenmez unutmayın
$git status ~/bin
# On branch master
nothing to commit (working directory clean)
Dosyaları yok .git/bilgi ne de dışlamak/.-dosyaları gitignore.
Son uyarı ne anlama geliyor?
CEVAP
GÜNCELLEME
Git bir dosya yok sayacak neden iki genel nedeni vardır: gitignore
submodules
.
Daha spesifik olarak, aşağıdaki koşulları bir dosyayı görmezden Gıt neden olur 'git add
' çağrılır:
- Dosya desen
$GIT_DIR/exclude
maçlar. - Dosya repo içinde
.gitignore
dosyada desen ile eşleşir. - Dosya kullanıcıya özel
.gitignore
bir dosya içinde bir eşleşme deseni (tarafından belirtilen'git config --global core.excludesfile
'). - Dosyayı bir submodule bir parçasıdır.
'20* *' göz ardı dosyası: . zorlama
Eğer belirli bir dosyayı çağırarak ihmal olup olmadığını görmek için kontrol edebilirsiniz 'git add full/path/to/file
'.
Adam sayfayı belirtirEğer göz ardı dosyası açıkça komut satırında belirtilen "komutu göz ardı dosyaların bir listesi ile başarısız olur."
Eğer dosyayı göz ardı edilirse, eklenecek zorlayabilir 'git add --force full/path/to/file
'.
Talimatları submodule başvuru ortadan kaldırmak için:
Olarak, shells/smallApps
bir önceki cevap sizin depo submodule bir olduğunu kaydetti.
Eğer dosya bir submodule bir parçası ise, durum daha karmaşık. Ana proje içinde submodule içeriğini değiştiremezsiniz.
Eğer submodule başvuru ortadan kaldırmak ve doğrudan ana repo dosyalarını izlemek istiyorsanız, gerçekleştirilmesi gereken bazı adımlar vardır. Sadece kaldıramazsınız ".gıt" submodule dizin. Ana Depo ve submodule arasında üç bağlantı vardır:
- Ana repo
.gitmodules
dosyası. - Ana repo
.git/config
bir giriş. - Herhangi bir ana repo geçmişi submodule ilgili tamamlar.
Bu başına related SO question tamamen alt modül kaldırmak için aşağıdaki adımları gerçekleştirmek gerekir:
NOT: Eğer başka bir şube bu submodule değişir, daha sonra bilgisayarın bozuk deponuzu! Bu tehlikeli bir operasyon...dikkatli kullanın.
.gitmodules
dosyasından ilgili satırı sil..git/config
ilgili bölümü silin.git rm --cached path_to_submodule
(eğik çizgi) çalıştırın.- Commit
Bu submodule parçası olan dosyaları artık izlenmeyen ve devam etmeye karar veya onları istediğiniz gibi (bir uyarı aşağıda belirtilen) silebilirsiniz.
Eğer bu dosyalara ihtiyacın olursa, sadece onları silebilirsiniz.
Uyarı:Eğer bu dosyaları istiyor gibisin) tutmak istiyorsanız, el ile submodule klasöründen .git
dizin kaldırmanız gerekir:
cd path_to_submodule
rm .git
cd ..
git add path_to_submodule
git status
git commit
GÜNCELLEME:
Daha fazla bilgi için istek:
Bu sorun, hata ayıklama yardımcı olmak için, lütfen aşağıdaki komutları tam oturumun çıkış sonrası:
cd to the top-level directory in your repo
ls -al
cat .git/config
find . -name ".git*"
git status
git add editors
git add shells
git status
Şimdiye kadar yaptıklarını açıklamasına göre, görmek istiyorum:
.gitmodules
hiçbir dosya herhangi bir yerde.git
dizin (repo kökünde bulunan) tekeditors/vim/vimdoclet
.git
dizin yokshells/smallApps
41 *dizin yok
Git içinde bir tamamlama için tüm dosy...
Bir TextView içinde birden çok stil ol...
Git/Yeniden Adlandır dosyaları taşımak...
Yinelemeli olarak kullanarak wget için...
İçinde Node.js nasıl "vardır"...