2012-01-11 13 views
6

Odwołuję się do submodułu git w moim projekcie, a teraz muszę odnieść się do konkretnego SHA w docelowym repozytorium git.Git submoduły: określić konkretny SHA?

# .gitmodules 
[submodule "vendor/plugins/ssl_requirement"] 
    path = vendor/plugins/ssl_requirement 
    url = git://github.com/retr0h/ssl_requirement.git 

SHA, którego chcę to bc96ad96407a72a60e0542cf3b0cecc6ff9e278e.

Odpowiedz

20

Submodules, z definicji, zawsze odwołują się do konkretnego SHA1 w podprojekcie. Ten SHA1 nie jest wyrażony w pliku .gitmodules, ale jest wyrażany jako wpis w obiekcie drzewa, który zawiera moduł częściowy. Sposób, w jaki ustawiasz to w git jest przez cd w module częściowym, sprawdzając SHA1, który chcesz, a następnie cd wracając do nadrzędnego repozytorium i zatwierdzając twoją zmianę, która pojawi się tak jak zmieniony plik.

Więc w twoim przypadku to, co można zrobić, to

cd vendor/plugins/ssl_requirement 
git checkout bc96ad96407a72a60e0542cf3b0cecc6ff9e278e 
cd .. 
git add ssl_requirement 
# commit whenever you're ready 
+1

+1; to prawie dokładnie to, co właśnie pisałem. Zauważ, że jeśli ostatni moduł będzie pochodził z miejsca pochodzenia przed zatwierdzeniem, być może będziesz musiał uruchomić 'git fetch' w module pomocniczym, aby go pobrać! – Cascabel

+0

Dzięki, ma sens! – Zubin

Powiązane problemy