SORU
12 Kasım 2010, Cuma


İzlenmeyen içerik izlemek için nasıl Git -?

Benim asıl sorum için sağlam bir satır aşağıya bakınız.

İzlenmeyen bu benim yerel dizine bir klasör var. git status, çalıştırdığımda alıyorum:

Changed but not updated:
modified:   vendor/plugins/open_flash_chart_2 (modified content, untracked content)

Ben git add vendor/plugins/open_flash_chart_2 git status tekrar deneyin yazarken, hala izlenmeyen diyor. Neler oluyor?


İşte son yarım saatim basit bir özeti:

  • Benim Github repo vendor/plugins/open_flash_chart_2 benim eklenti değil ... takip ettiğini keşfetti. Özellikle, içerik yok ve bir gösteriyoryeşil okklasör simgesini.

  • git submodule init çalıştı

    No submodule mapping found in .gitmodules for path 'vendor/plugins/open_flash_chart_2'
    
  • git submodule add git://github.com/korin/open_flash_chart_2_plugin.git vendor/plugins/open_flash_chart_2 çalıştı

    vendor/plugins/open_flash_chart_2 already exists in the index
    
  • git status

    modified: vendor/plugins/open_flash_chart_2 (untracked content)
    
  • Herhangi bir dosya için avlanan depo/local dizininde .gitmodules adında ama bir türlü bulamadım.

Ben için ne yapmam gerekiyorbenim alt modüller çalışıyorgit düzgün izleme başlayabilir?


Bu ilgisiz olabilir (yardımcı olur diye ben dahil), ama her zaman benim her zamanki yerine git commit -a git commit -m "my comments" bir hata atar: yazın

E325: ATTENTION
Found a swap file by the name ".git\.COMMIT-EDITMSG.swp"
         dated: Thu Nov 11 19:45:05 2010
     file name: c:/san/project/.git/COMMIT_EDITMSG
      modified: YES
     user name: San   host name: San-PC
    process ID: 4268
While opening file ".git\COMMIT_EDITMSG"
         dated: Thu Nov 11 20:56:09 2010
  NEWER than swap file!  
Swap file ".git\.COMMIT_EDITMSG.swp" already exists!
[O]pen Read-Only, (E)dit anyway, (R)ecover, (D)elete it, (Q)uit, (A)bort:
Swap file ".git\.COMMIT_EDITMSG.swp" already exists!
[O]pen Read-Only, (E)dit anyway, (R)ecover, (D)elete it, (Q)uit, (A)bort:

Github tam bir acemi olduğumu ve belgelere geçmesi için çalışıyoruz rağmen, biraz bu belirli sorunların kafam allak bullak oldu. Teşekkür ederim.

CEVAP
12 Kasım 2010, Cuma


“” Girdi, ama hiç bir submodule olarak tanımlanmış. gitlink olarak vendor/plugins/open_flash_chart_2 eklediniz Etkili bir iç özelliği kullanıyorsunuzgit submodulekullanır (gitlink girişleri) ama submodule kendisi özelliğini kullanmıyorsunuz.

Muhtemelen böyle bir şey yaptı

git clone git://github.com/korin/open_flash_chart_2_plugin.git vendor/plugins/open_flash_chart_2
git add vendor/plugins/open_flash_chart_2

Bu son komut sorundur. Dizin vendor/plugins/open_flash_chart_2 bağımsız Gıt bir depo olarak başlar. Genellikle bu tür alt-depoları eğer söylersen, ama görmezdengit ekleyinaçıkça bu eklemek için, o zaman dizinin içeriğini eklemek yerine alt depo için puan KAFASI işleyen gitlink bir girdi oluşturacaktır. Eğer güzel olabilirgit ekleyinbu tür oluşturmak için çöp olur “Yarı-alt modüller”.

Normal dizinleri Gıt ağaç nesneler olarak temsil edilir; ağaç nesnelerin isimlerini ve içerdikleri nesneler (genellikle diğer ağaç ve blob nesneleri—dizinleri ve dosyaları, sırasıyla) izinleri. Alt modüller “” girdileri; gitlink girişleri sadece nesne adı (karma) submodule tamamlama içerir. gitlink olarak gösterilir “Kaynak deposu .gitmodules dosyasında belirtilen (ve submodule başlatıldı sonra .git/config dosya) işlemek” bir gitlink.

Ne olduğu belli tamamlama, kaynak işlemek için depo Kayıt Olmadan işaret eden bir giriştir. Ya gitlink kaldırarak uygun bir submodule içine veya gitlink yapmak ve “” (düz dosyalar ve dizinler) içeriği. normal ile değiştirerek düzeltebilirsiniz

Uygun bir Submodule çevirmek

Düzgün vendor/plugins/open_flash_chart_2 bir submodule olarak tanımlamak eksik tek bit .gitmodules bir dosyadır. Normalde zaten çıplak gitlink girdi olarak eklenmiş olsaydı da, sadece git submodule add kullanabilirsiniz:

git submodule add git://github.com/korin/open_flash_chart_2_plugin.git vendor/plugins/open_flash_chart_2

Bulunduğu gibi, bu yolu zaten endeks çalışmaz. Çözümü geçici olarak dizinden gitlink girdiyi kaldırın ve submodule ekleyin

git rm --cached vendor/plugins/open_flash_chart_2
git submodule add git://github.com/korin/open_flash_chart_2_plugin.git vendor/plugins/open_flash_chart_2

Bu şuna benzer alt depo (yani yeniden klon kaynak deposu değil) ve sahne .gitmodules varolan dosya: kullanır

[submodule "vendor/plugins/open_flash_chart_2"]
    path = vendor/plugins/open_flash_chart_2
    url = git://github.com/korin/open_flash_chart_2_plugin.git vendor/plugins/open_flash_chart_2

Ayrıca .git/config ana depoyu benzer bir giriş (path ayarı olmadan) yapacak.

Ve uygun bir submodule olacağını taahhüt eder. Depo (ya ve oradan GitHub klon bas) clone, yeniden başlatma git submodule update --init ile submodule gerekir.

Sade İçeriği ile değiştirin

Bir sonraki adım varsayar sub-depo vendor/plugins/open_flash_chart_2 henüz herhangi bir yerel tarih istediğin korumak (yani tüm önemsediğin, içinde bulunulan ağacın alt depo, tarih).

Eğer değer verdiğin alt depo olarak yerel tarih varsa, o zaman ikinci komut aşağıda silmeden önce .git alt depo dizini yedekleme gerekir.(De göz önünde bulundurungıt ağacıalt depo KAFASINI tarihi koruyan aşağıda örnek).

git rm --cached vendor/plugins/open_flash_chart_2
rm -rf vendor/plugins/open_flash_chart_2/.git # BACK THIS UP FIRST unless you are sure you have no local changes in it
git add vendor/plugins/open_flash_chart_2

Dizin eklerken bu sefer, alt depo değil, dosyaları normal olarak eklenecektir. .git dizini silinmiş olduğundan ne yazık ki, işlerin güncel bir kaynak deposu ile tutmak için süper kolay bir yolu yok.

subtree merge bir yerine düşünebilirsiniz. Böylece dosyalar “” depo (alt modüller). düz tutarken kolayca kaynak depodaki değişiklikler yapmasına izin verecek Üçüncü şahıs git subtree command alt birleştirme etrafında güzel bir sarıcı işlevi.

git rm --cached vendor/plugins/open_flash_chart_2
git commit -m'converting to subtree; please stand by'
mv vendor/plugins/open_flash_chart_2 ../ofc2.local
git subtree add --prefix=vendor/plugins/open_flash_chart_2 ../ofc2.local HEAD
#rm -rf ../ofc2.local # if HEAD was the only tip with local history

Daha sonra:

git remote add ofc2 git://github.com/korin/open_flash_chart_2_plugin.git
git subtree pull --prefix=vendor/plugins/open_flash_chart_2 ofc2 master

git subtree push --prefix=vendor/plugins/open_flash_chart_2 git@github.com:me/my_ofc2_fork.git changes_for_pull_request

gıt ağacıaynı zamanda tarihe kaynak deposu tarihini içeren önlemek sağlar ama Yukarı değişiklikleri çekin hala sağlar --squash bir seçenek vardır.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Barnacules Nerdgasm

    Barnacules N

    20 Temmuz 2006
  • NYLON Video

    NYLON Video

    11 Aralık 2006
  • Sarah's YouTube Channel

    Sarah's YouT

    27 Temmuz 2009