SORU
5 Temmuz 2009, Pazar


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
8 Temmuz 2009, ÇARŞAMBA


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:

  1. Dosya desen $GIT_DIR/exclude maçlar.
  2. Dosya repo içinde .gitignore dosyada desen ile eşleşir.
  3. Dosya kullanıcıya özel .gitignore bir dosya içinde bir eşleşme deseni (tarafından belirtilen'git config --global core.excludesfile').
  4. 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:

  1. Ana repo .gitmodules dosyası.
  2. Ana repo .git/config bir giriş.
  3. 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.

  1. .gitmodules dosyasından ilgili satırı sil.
  2. .git/config ilgili bölümü silin.
  3. git rm --cached path_to_submodule (eğik çizgi) çalıştırın.
  4. 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:

  1. cd path_to_submodule
  2. rm .git
  3. cd ..
  4. git add path_to_submodule
  5. git status
  6. 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) tek
  • editors/vim/vimdoclet .git dizin yok
  • shells/smallApps 41 *dizin yok

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Amir Parmar

    Amir Parmar

    25 Kasım 2010
  • fast2hell

    fast2hell

    16 AĞUSTOS 2006
  • Qmusic Romania

    Qmusic Roman

    8 Temmuz 2011