Git alt modülünü eklerken bir dalı / etiketi nasıl belirleyebilirim?


756

Nasıl git submodule add -bçalışır?

Belirli bir dalı olan bir alt modül eklendikten sonra, yeni bir klonlanmış depo (sonra git submodule update --init) dalın kendisi değil belirli bir işlemde olacaktır ( git statusalt modülde "Şu anda hiçbir dalda değil" ifadesi gösterilir).

Alt modülün dalı veya belirli bir taahhüt hakkında .gitmodulesveya bu .git/configkonuda herhangi bir bilgi bulamıyorum , bu yüzden Git bunu nasıl anlayabilir?

Ayrıca, dal yerine bir etiket belirtmek mümkün müdür?

1.6.5.2 sürümünü kullanıyorum.


3
Henüz bir şubeyi takip etmeyen mevcut bir alt modülünüz varsa , ancak şimdi bir şubeyi takip etmesini istiyorsanız ... aşağıdaki cevabımı görün
VonC

Yanıtlar:


745

Not: Git 1.8.2 şubeleri izleme imkanı ekledi. Aşağıdaki cevaplardan bazılarına bakın.


Buna alışmak biraz kafa karıştırıcı, ancak alt modüller bir dalda değil. Dediğiniz gibi, bunlar sadece alt modülün deposunun belirli bir taahhüdünün bir göstergesidir.

Bu, başka biri deponuzu kontrol ettiğinde veya kodunuzu çektiğinde ve git alt modül güncellemesi yaptığında, alt modülün belirli bir işleme teslim edildiği anlamına gelir.

Bu, sık sık değişmeyen bir alt modül için harikadır, çünkü o zaman projedeki herkes alt modülün aynı taahhütte olmasını sağlayabilir.

Alt modülü belirli bir etikete taşımak istiyorsanız:

cd submodule_directory
git checkout v1.0
cd ..
git add submodule_directory
git commit -m "moved submodule to v1.0"
git push

Ardından, alt mod_dizini bu etikete değiştirilmesini isteyen başka bir geliştirici bunu yapar

git pull
git submodule update --init

git pullalt modül dizinini işaret eden değişiklikler. git submodule updateaslında yeni kodda birleşir.


8
Bu çok iyi bir açıklama, teşekkürler! Ve elbette, cevabınızı okuduktan sonra, taahhüdün alt modülün içinde (alt modül / .git / HEAD) kaydedildiğini fark ettim.
Ivan

4
Bu git 1.7.4.4 üzerinde çalışmıyor gibi görünüyor. cd my_submodule; git checkout [ref in submodule's repositoryverim fatal: reference is not a tree: .... Sanki gitsadece ana depoda çalışacakmış gibi .
James A. Rosen

3
Git alt modüllerini sık sık güncellenen projeler için bile kullanmak iyidir. Linux çekirdeği kullanır ve o kadar da kötü değil

10
git checkout v1.0bir dal ya da etiket?
Bernhard Döbler

8
Bir etiketi bir taahhüt için okunabilir bir takma ad olarak düşünün. Ve bir taahhüt, her dosya için belirli bir durum kümesidir. Bir dalda değişiklik yapabilmeniz dışında, esasen aynı şeydir.
deadbabykitten

656

Buraya gerçekten sadece diğer cevapların bir araya gelmesi olan bir cevap eklemek istiyorum, ama bence bu daha eksiksiz olabilir.

Bu iki şeye sahip olduğunuzda Git alt modülünüz olduğunu biliyorsunuz.

  1. Sizin .gitmodulesşöyle bir girdi vardır:

    [submodule "SubmoduleTestRepo"]
        path = SubmoduleTestRepo
        url = https://github.com/jzaccone/SubmoduleTestRepo.git
    
  2. Git deponuzda bir alt modül nesnesi (bu örnekte SubmoduleTestRepo olarak adlandırılır) var. GitHub bunları "alt modül" nesneleri olarak gösterir. Veya git submodule statusbir komut satırından yapın. Git alt modül nesneleri özel Git nesneleridir ve belirli bir işlem için SHA bilgilerini tutarlar.

    Ne zaman bir yaparsanız git submodule update, alt modülünüzü taahhütten gelen içerikle doldurur. İçindeki bilgiler nedeniyle taahhüdü nerede bulacağını bilir .gitmodules.

    Şimdi tüm -byapmanız gereken , .gitmodulesdosyanıza bir satır eklemek . Yani aynı örneği takip ederek şöyle görünecektir:

    [submodule "SubmoduleTestRepo"]
        path = SubmoduleTestRepo
        url = https://github.com/jzaccone/SubmoduleTestRepo.git
        branch = master
    

    Not: bir .gitmodulesdosyada yalnızca dal adı desteklenir , ancak SHA ve TAG desteklenmez! (bunun yerine, şubenin her bir modülün taahhüdü " git add ." kullanılarak izlenebilir ve güncellenebilir , örneğin git add ./SubmoduleTestRepo, ve .gitmodulesher seferinde dosyayı değiştirmeniz gerekmez )

    Alt modül nesnesi hala belirli bir taahhüdü işaret ediyor. -bSeçeneğin size --remotesunduğu tek şey, Vogella'nın cevabına göre güncellemenize bir bayrak ekleme yeteneğidir :

    git submodule update --remote
    

    Alt modülün içeriğini alt modülün işaret ettiği komuta doldurmak yerine, ana daldaki en son taahhüdün yerine geçer, daha sonra alt modülü bu taahhütle doldurur. Bu djacobs7 cevabı ile iki adımda yapılabilir. Artık alt modül nesnesinin işaret ettiği komutu güncellediğiniz için, değiştirilen alt modül nesnesini Git veri havuzunuza kaydetmelisiniz.

    git submodule add -bher şeyi bir şube ile güncel tutmanın sihirli bir yolu değildir. .gitmodulesDosyadaki bir dal hakkında bilgi ekler ve alt modül nesnesini doldurmadan önce belirtilen bir dalın en son işlemine güncelleme seçeneği sunar.


14
Bu cevabın daha fazla oyu olmalı. Geçen gün için birçok yazı okudum ve bu tüm karışıklığı giderir. SVN dünyasından gelmek ve dışsalları kullanmak - biri git submodule şube izlemenin sihirli bir şekilde her şeyi şubeden güncel tuttuğuna inanmak istiyor - ama bu doğru değil! Onları açıkça güncellemelisin! Bahsettiğiniz gibi, değiştirilmiş alt modül nesnelerini işlemelisiniz.
dtmland

12
Bu şube takibi etiketlerle de çalışıyor mu? Şube yerine kendimde bir etiket belirledim .gitmodulesve yaptıktan sonra ve $ git submodule update --init --remote TestModulediyerek bir hata aldım . Gerçek bir dal ile yaparken işe yarıyor. Kesin taahhüdü belirtmek zorunda kalmadan etiketi belirtmek için yine de var mı ? fatal: Needed a single revisionUnable to find current origin/TestTag revision in submodule path 'TestModule'.gitmodules
Hhut

5
Bu işe yaramıyor gibi görünüyor. Hash'i güncelledim .gitmodulesve koştum git submodule updateve hiçbir şey olmadı?
CMCDragonkai

2
Bir şekilde bu benim için çalışmıyor. Geçerli revizyon bulmak için bir SHA ile kimliği Teslim, hep hata alıyorum "açılamadı (Çift revizyon BAŞ sayısını ve doğru işaretli) Ben yöneticisini kullanan Ancak eğer çalışır..
infoclogged

2
Şube özelliğine bir SHA girmek de benim için işe yaramıyor. Bu kullanım da olduğu değil docs tarafından desteklenen: git-scm.com/docs/gitmodules
Jakub Bochenski

339

(Git 2.22, 2. Çeyrek 2019 piyasaya sunuldu git submodule set-branch --branch aBranch -- <submodule_path>)

Not o bir varsa mevcut alt modülü değil henüz bir şube izleme (daha sonra, sen git 1.8.2+ varsa ):

  • Ana repo, alt modülünün artık bir dalı izlediğini bildiğinden emin olun:

    cd /path/to/your/parent/repo
    git config -f .gitmodules submodule.<path>.branch <branch>
    
  • Alt modülünüzün aslında bu dalın en sonuncusunda olduğundan emin olun:

    cd path/to/your/submodule
    git checkout -b branch --track origin/branch
      # if the master branch already exist:
      git branch -u origin/master master
    

         ( 'köken' ismi olmak Repo üst uzaktan alt modülü. klonlanmıştır
         A git remote -vbu alt modülü gösterecektir içinde. Genellikle, bir 'kökenli')

  • Ana modülünüzde alt modülünüzün yeni durumunu kaydetmeyi unutmayın:

    cd /path/to/your/parent/repo
    git add path/to/your/submodule
    git commit -m "Make submodule tracking a branch"
    
  • Bu alt modül için sonraki güncelleme --remoteseçeneği kullanmak zorunda kalacaktır :

    # update your submodule
    # --remote will also fetch and ensure that
    # the latest commit from the branch is used
    git submodule update --remote
    
    # to avoid fetching use
    git submodule update --remote --no-fetch 
    

Not bununla Git 2.10+ (Q3 2016), sen kullanabilirsiniz .şube adı olarak ':

Şube adı olarak kaydedilir submodule.<name>.branchiçinde .gitmodulesiçin update --remote. Alt modüldeki dal adının, geçerli havuzdaki geçerli dal ile aynı ad olması gerektiğini belirtmek için
özel bir değeri .kullanılır .

Fakat, yorumladı olarak tarafından LubosD

İle git checkouttakip şube adı "ise, .", bu kararsız çalışması öldürecek! Bunun yerine
kullanın git switch.

Bu Git 2.23 (Ağustos 2019) veya daha fazlası anlamına gelir.

Bkz. " Kafası karıştıgit checkout "


Bir şubeyi izleyerek tüm alt modüllerinizi güncellemek istiyorsanız:

    git submodule update --recursive --remote

Her güncellenmiş alt modül için sonucun Dan Cameron'un cevabında belirttiği gibi neredeyse her zaman bağımsız bir HEAD olacağını unutmayın .

( Clintm notlar yorumlarda koşarsan, git submodule update --remoteve elde edilen sha1 alt modülü şu anda şube aynıdır, bu her şeyi ve bırakın submodule hala "o dala" değil müstakil kafa durumda olmayacaktır. )

Şubenin gerçekten teslim alındığından (ve ana repo için alt modülü temsil eden özel girişin SHA1'inde değişiklik yapmayacağından ) emin olmak için şunları önerir:

git submodule foreach -q --recursive 'branch="$(git config -f $toplevel/.gitmodules submodule.$name.branch)"; git switch $branch'

Her alt modül yine de aynı SHA1'e başvurur, ancak yeni taahhütler yaparsanız, alt modülün izlemesini istediğiniz dal tarafından referans verileceği için bunları itebilirsiniz.
Bir alt modül içindeki itmeden sonra, ana repoya geri dönmeyi, değiştirilen alt modüller için yeni SHA1'i eklemeyi, taahhüt etmeyi ve itmeyi unutmayın.

Kullanımına dikkat $topleveltavsiye yorumlarda tarafından Alexander Pogrebnyak .
$toplevelMayıs 2010'da git1.7.2'de tanıtıldı: f030c96 taahhüdü .

üst düzey dizinin mutlak yolunu içerir (nerede .gitmodules).

dtmlandyorum ekler :

Foreach betiği, bir dalı takip etmeyen alt modüllerin çıkışını yapamaz.
Ancak, bu komut her ikisini de verir:

 git submodule foreach -q --recursive 'branch="$(git config -f $toplevel/.gitmodules submodule.$name.branch)"; [ "$branch" = "" ] && git checkout master || git switch $branch' –

Aynı komut ama okunması daha kolay:

git submodule foreach -q --recursive \
    'branch="$(git config -f $toplevel/.gitmodules submodule.$name.branch)"; \
     [ "$branch" = "" ] && \
     git checkout master || git switch $branch' –

umläute , dtmland'ın komutunu yorumlarda basitleştirilmiş bir sürümle geliştirir :

git submodule foreach -q --recursive 'git switch $(git config -f $toplevel/.gitmodules submodule.$name.branch || echo master)'

birden fazla satır:

git submodule foreach -q --recursive \
  'git switch \
  $(git config -f $toplevel/.gitmodules submodule.$name.branch || echo master)'

Git 2.26'dan (Q1 2020) önce, alt modüllerde tekrar tekrar güncellemeler getirmesi söylenen bir getirme kaçınılmaz olarak çıktı yığınları üretir ve hata mesajlarını tespit etmek zorlaşır.

Komut, işlemin sonunda hataları olan alt modülleri numaralandırmak için öğretildi .

Bkz . Emily Shaffer ( ) tarafından taahhüt edilen 0222540 (16 Ocak 2020 ) . (Göre Birleştirilmiş Junio Cı Hamano - - içinde b5c71cc tamamlama , 5 Şubat 2020)nasamuffin
gitster

fetch: alt modül getirme sırasında başarısızlığı vurgula

İmzalayan: Emily Shaffer

Çok sayıda alt modül olduğunda bir alt modül alımının başarısız olduğu durumlarda, yalnız başarısız alt modül alımından kaynaklanan hata, birden fazla getirme geri düşerse diğer alt modüllerde etkinlik altına gömülür fetch-by-oid.
Kullanıcı bir şeylerin yanlış gittiğinin ve nerede olduğunun farkında olması için geç bir hata verin .

Çünkü fetch_finish()sadece run_processes_parallel,muteksleme ile eşzamanlı olarak çağrılmak gerekli değildir submodules_with_errors.


1
Soru: Eğer klasör subModule1 varsa ve ana dalı izlemek istiyorsanız, ortaya çıkan komut şöyle görünür: git config -f .gitmodules submodule.subModule1.branch master
BraveNewMath 17:13

1
foreachKodlanmış komut dosyası bağlı olmayacaktır <path>sen yerine eğer, <path>ile $toplevel/.
Alexander Pogrebnyak

1
foreachKomut bir şube takip etmiyor çıkış modüllerin birbirilerine başarısız olur. Ancak, bu komut her ikisini de verir:git submodule foreach -q --recursive 'branch="$(git config -f $toplevel/.gitmodules submodule.$name.branch)"; [ "$branch" = "" ] && git checkout master || git checkout $branch'
dtmland

2
İşte @ dtmland'ın betiğinin basitleştirilmiş bir sürümü:git submodule foreach -q --recursive 'git checkout $(git config -f $toplevel/.gitmodules submodule.$name.branch || echo master)'
umläute

1
Ohh! Aslında foreach betiği gereksizdir. Alt modül güncellemesini --merge veya --rebase anahtarıyla: git submodule update --remote --mergeveya git submodule update --remote --rebase. Bu komutlar uzak dalın izlemesini yapar.
GregTom

206

Git 1.8.2 şubeleri izleme imkanı ekledi.

# add submodule to track master branch
git submodule add -b branch_name URL_to_Git_repo optional_directory_rename

# update your submodule
git submodule update --remote 

Ayrıca bakınız Git alt modülleri


4
Bu, etiketler için de geçerli mi?
ThorSummoner

1
Alt modülün bu şekilde eklenmesi .gitmodulesdosyaya nasıl yansır ?
Eugene

1
Teşekkürler Ben sadece GitHub gh-pages web sitesi ile senkronize edilmiş bir alt modül klasörü oluşturmama yardımcı olmak için kullandım: github.com/o2platform/fluentnode/issues/22
Dinis Cruz

4
Bir kilitlenebiliyor etiketi ile git submodule add -b tags/<sometag> <url>satır olarak görebileceğiniz branch = tags/<sometag>içinde.gitmodules
KCD

9
@KCD Git'in hangi sürümü bunu etiketlerle yapabilir. Benimki çalışmıyor mu?
CMCDragonkai

58

Git alt modüllerini nasıl kullandığımın bir örneği.

  1. Yeni bir havuz oluştur
  2. Sonra başka bir veri havuzunu alt modül olarak klonlayın
  3. Sonra o alt modülün V3.1.2 adlı bir etiketi kullanmasını sağladık
  4. Ve sonra taahhüt ediyoruz.

Ve bu biraz şuna benziyor:

git init 
vi README
git add README
git commit 
git submodule add git://github.com/XXXXX/xxx.yyyy.git stm32_std_lib
git status

git submodule init
git submodule update

cd stm32_std_lib/
git reset --hard V3.1.2 
cd ..
git commit -a

git submodule status 

Belki yardımcı olur (ben bir şube değil, bir etiket kullanmasına rağmen)?


4
Temelde djacobs7 ile aynı cevap, ama yine de teşekkürler :)
Ivan

1
Sizden sonra bir değişiklik yapabilmeniz gerekir git reset --hard V3.1.2mi? Ben sadece bir git statusüst dizini ile bir "taahhüt hiçbir şey" olsun .
Nick Radford

1
@Ivan: Bunun djacobs7'nin cevabı ile nasıl aynı olduğunu açıklayabilir misiniz? Gördüğüm kadarıyla, yanıtı 'alt modül ekleme' komutunu bile içermiyor, bunun yerine repo, modülün orijinal git repo'suna herhangi bir bağlantı olmadan doğrudan ekleniyor. En azından bu yaklaşımı denediğimde .gitmodules'de bağlantı yoktu.
Michel Müller

djacobs7'nin yanıtı, alt modülün eklenmesinden başlayarak tüm açıklamayı içermez. Zaten sahip olduğunuzu varsayar.
CodeMonkey

alt modül içeriğinin tamamını izlenen nesneler olarak ana depoya eklemez mi?
user1312695

38

Deneyimlerime göre, süper projede veya gelecekteki check-out'larda dalların değiştirilmesi, alt modülün düzgün bir şekilde eklenmiş ve izlenmiş olmasına bakılmaksızın, alt modüllerin bağımsız HEAD'lerine neden olacaktır (yani @ djacobs7 ve @Johnny Z cevapları).

Ve doğru dalı manuel olarak kontrol etmek yerine veya her komut dosyası ile git submodule foreach kullanılabilir.

Bu, dal modülü için alt modül yapılandırma dosyasını kontrol eder ve ayarlanan dalı kontrol eder.

git submodule foreach -q --recursive 'branch="$(git config -f <path>.gitmodules submodule.$name.branch)"; git checkout $branch'


Güzel. +1. Komutumu cevabıma dahil ettim .
VonC

33

Git alt modülleri biraz garip - her zaman "ayrılmış kafa" modundalar - beklediğiniz gibi bir daldaki en son taahhüde güncelleme yapmıyorlar.

Yine de, bunu düşündüğünüzde bir anlam ifade ediyor. Diyelim ki alt modül çubuğu ile havuz foo oluşturuyorum . Benim değişiklikleri itmek ve kontrol etmek size haber depo gelen a7402be taahhüt foo .

Ardından, klonunuzu yapmadan önce birisinin havuz çubuğunda bir değişiklik yaptığını düşünün .

Veri deposu foo taahhüt a7402be kontrol ettiğinizde, ben itti aynı kodu almak bekliyoruz. Bu nedenle, alt modüller siz açıkça belirtip yeni bir taahhütte bulunana kadar güncellenmez.

Şahsen ben alt modüllerin Git'in en kafa karıştırıcı kısmı olduğunu düşünüyorum. Alt modülleri benden daha iyi açıklayabilecek birçok yer var. Ben Scott Chacon tarafından Pro Git öneririm .


Sanırım bazı git kitaplarını okumaya başlamanın zamanı geldi, öneri için teşekkürler.
Ivan

Maalesef, foo sürümünüze rağmen birinin a7402be'ye ittiğinizle aynı olup olmadığını veya çubuğun en son sürümünü alıp almayacağınızı netleştirmediniz. Teşekkürler :)
mmm

6
Sorun, "bu alt modülü X dalında tut" demek için bir seçenek olması gerektiğidir, böylece otomatik olarak kendini güncellemesini İSTİYORSANIZ, bunu yapabilirsiniz. Alt modülleri, eklentilerin tüm Git depoları olduğu bir WordPress kurulumunu yönetmek için çok daha kullanışlı hale getirecektir.
jerclarke

@jeremyclark git clone git://github.com/git/git.gitve bu özelliği itmek ...? = D
Alastair

1
Git hakkındaki en kafa karıştırıcı kısım, on yıldan fazla bir süreden sonra bile, işimi yapmama yardımcı olacak bir aracın hala kötü bir kullanıcı deneyimine sahip olması ve tamamen arkamdaki nedenlerden dolayı insanların parmağını Git all tarafından göstermekten zevk alması. zaman.
0xC0000022L

20

Bir alt modülün dalını değiştirmek için (zaten havuzun bir parçası olarak alt modüle sahip olduğunuzu varsayarak):

  • cd alt modüllerini içeren havuzunuzun köküne
  • .gitmodulesDüzenlemeye aç
  • Aşağıdaki satırı ekleyin path = ...ve url = ...söylüyor branch = your-branchher alt modülün için; dosyayı kaydet .gitmodules.
  • sonra dizin değiştirmeden yapmak $ git submodule update --remote

... bu şekilde değiştirilen her alt modül için belirtilen branştaki en son taahhütleri çekmelidir.


10

Bunu .gitconfig dosyamda var. Hala bir taslak, ancak şu an için yararlı olduğu kanıtlandı. Alt modülleri her zaman şubelerine yeniden takmamı sağlıyor.

[alias]

######################
#
#Submodules aliases
#
######################


#git sm-trackbranch : places all submodules on their respective branch specified in .gitmodules
#This works if submodules are configured to track a branch, i.e if .gitmodules looks like :
#[submodule "my-submodule"]
#   path = my-submodule
#   url = git@wherever.you.like/my-submodule.git
#   branch = my-branch
sm-trackbranch = "! git submodule foreach -q --recursive 'branch=\"$(git config -f $toplevel/.gitmodules submodule.$name.branch)\"; git checkout $branch'"

#sm-pullrebase :
# - pull --rebase on the master repo
# - sm-trackbranch on every submodule
# - pull --rebase on each submodule
#
# Important note :
#- have a clean master repo and subrepos before doing this !
#- this is *not* equivalent to getting the last committed 
#  master repo + its submodules: if some submodules are tracking branches 
#  that have evolved since the last commit in the master repo,
#  they will be using those more recent commits !
#
#  (Note : On the contrary, git submodule update will stick 
#to the last committed SHA1 in the master repo)
#
sm-pullrebase = "! git pull --rebase; git submodule update; git sm-trackbranch ; git submodule foreach 'git pull --rebase' "

# git sm-diff will diff the master repo *and* its submodules
sm-diff = "! git diff && git submodule foreach 'git diff' "

#git sm-push will ask to push also submodules
sm-push = push --recurse-submodules=on-demand

#git alias : list all aliases
#useful in order to learn git syntax
alias = "!git config -l | grep alias | cut -c 7-"

3

Biz kullanmak QuackBaşka bir Git deposundan belirli bir modülü çekmek . Sağlanan havuzun tüm kod tabanı olmadan kodu çekmemiz gerekiyor - bu büyük depodan çok özel bir modüle / dosyaya ihtiyacımız var ve her güncelleme çalıştırdığımızda güncellenmelidir.

Bu şekilde başardık:

Yapılandırma oluştur

name: Project Name

modules:
  local/path:
    repository: https://github.com/<username>/<repo>.git
    path: repo/path
    branch: dev
  other/local/path/filename.txt:
    repository: https://github.com/<username>/<repo>.git
    hexsha: 9e3e9642cfea36f4ae216d27df100134920143b9
    path: repo/path/filename.txt

profiles:
  init:
    tasks: ['modules']

Yukarıdaki konfigürasyon ile, ilk modül konfigürasyonunda belirtildiği gibi sağlanan GitHub havuzundan bir dizin oluşturur ve diğeri verilen havuzdan bir dosya çekmek ve oluşturmaktır.

Diğer geliştiricilerin sadece

$ quack

Ve yukarıdaki yapılandırmalardan kodu çeker.


2

Bir alt modül için bir dal seçmenin tek etkisi, --remoteseçeneği git submodule updatekomut satırında her ilettiğinizde Git'in--checkout seçili uzak dalın son taahhüdünü ( varsayılan davranış seçiliyse) bağımsız olarak teslim almasıdır.

Alt modüllerin sığ klonları ile çalışıyorsanız Git alt modüllerinde bu uzak dal izleme özelliğini kullanırken özellikle dikkatli olmalısınız. Alt modül ayarlarında bu amaç için seçtiğiniz dal , klonlanacak olan DEĞİLDİRgit submodule update --remote . Ayrıca geçerseniz --depthparametreyi ve sen Git talimat yok hangi dalı hakkında size klon istiyorum - ve aslında olamaz içinde git submodule updatekomut satırında !! -, açık parametrenin eksik olduğu durumlarda git-clone(1)dokümantasyonda açıklandığı gibi dolaylı olarak davranacak ve bu nedenle yalnızca birincil dalı klonlayacaktır .git clone --single-branch--branch

Sürpriz olmadan, git submodule updatekomut tarafından gerçekleştirilen klon aşamasından sonra, nihayetinde alt modül için ayarladığınız uzak dal için en son taahhüdü kontrol etmeye çalışır ve bu birincil değilse, bu bir parçası değildir. yerel sığ klonunuz ve bu nedenle

ölümcül: Tek bir düzeltme gerekiyor

'MySubmodule' alt modül yolunda geçerli kaynak / NotThePrimaryBranch revizyonu bulunamıyor


hatayı düzeltmek için - Tek bir revizyona mı ihtiyacınız var?
NidhinSPradeep

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.