SORU
18 Kasım 2009, ÇARŞAMBA


BM-submodule git submodule

Nasıl un-submodule git submodule (tüm kod çekirdeğe geri getirin) ?

Nasıl "gerektiği gibi", "en İyi prosedür" ...

CEVAP
24 Kasım 2009, Salı


Eğer istediğiniz tüm ana deposuna submodule kodunuzu koymak için ise, sadece submodule ve yeniden ana repo dosyaları kaldırmak gerekir:

git rm --cached submodule_path # delete reference to submodule HEAD (no trailing slash)
git rm .gitmodules             # if you have more than one submodules,
                               # you need to edit this file instead of deleting!
rm -rf submodule_path/.git     # make sure you have backup!!
git add submodule_path         # will add files instead of commit reference
git commit -m "remove submodule"

Eğer sen de istiyorsan korumak tarihinin submodule, yapabileceğiniz küçük bir hile: "birleştirme" submodule içine ana depo yani sonuç değişmeyecek gibi oldu önce, dışında submodule dosyaları şimdi ana depo.

Ana modül aşağıdakileri yapmanız gerekir:

# Fetch the submodule commits into the main repository
git remote add submodule_origin git://url/to/submodule/origin
git fetch submodule_origin

# Start a fake merge (won't change any files, won't commit anything)
git merge -s ours --no-commit submodule_origin/master

# Do the same as in the first solution
git rm --cached submodule_path # delete reference to submodule HEAD
git rm .gitmodules             # if you have more than one submodules,
                               # you need to edit this file instead of deleting!
rm -rf submodule_path/.git     # make sure you have backup!!
git add submodule_path         # will add files instead of commit reference

# Commit and cleanup
git commit -m "removed submodule"
git remote rm submodule_origin

Sonuçta depoyu biraz garip görünecektir: ilk işlemek çok daha fazla olacak. Ama gıt için herhangi bir sorun neden olmaz.

Bu ikinci çözüm hala gıt suçu çalıştırmak veya başlangıçta alt modüller içinde olan dosyalar üzerinde günlük gıt sana büyük avantaj olacaktır. Aslında burada yaptığın bir depo içinde çok sayıda dosya yeniden adlandırmak ve git bu otomatik Algıla. Eğer hala git log ile ilgili sorunlar varsa, bazı seçenekleri deneyin (takip eden, -M, -C) algılama kopyala/daha iyi adlandırın.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Friday Night Cranks

    Friday Night

    27 Mayıs 2007
  • Study with Substance P

    Study with S

    31 Mayıs 2008
  • Troy Hunt

    Troy Hunt

    29 EYLÜL 2011