2016-07-26 6 views
2

Ich habe ein Submodul in meinem Haupt-Repository namens third-party. Da dieses Modul zu groß war, hatte ich einen Symlink zu third-party Ordner in meinem Arbeitsbereich erstellt. Zu meinem Unglück habe ich diesen symlink in meine Branche als Teil der großen Fettverschmelzung begangen! Grundsätzlich habe ich ein Submodul durch einen Symlink ersetzt.Git: Wie eine Symlink-Commit, die ein Submodul ersetzt?

Ich habe versucht, das Link und Submodul Update zu löschen, es hat nicht geholfen.

Weitere Details:

cat .gitmodules gibt die folgende

[submodule "third-party"] 
    path = third-party 
    url = http://my-git-server/third-party.git 

ls -la gibt die folgende

drwxr-xr-x 3 user admin 136 Jul 26 17:57 some-folder 
drwxr-xr-x 3 user admin 102 Jul 26 17:57 third-party -> /some/dead/path 

Ich habe keine Ahnung, wie man aus dieser Situation zu erholen. Jede Hilfe wird sehr geschätzt.

Antwort

1

Ich habe mehrere Dinge ausprobiert und schließlich das Folgende funktioniert. Bessere Lösungswege sind willkommen!

#delete the symlink 
rm third-party 

#delete the symlink from git 
git rm third-party 

#remove the submodule 
cat /dev/null>.gitmodules 

#commit the changes 
git add . 
git commit -m "Removing third-party as submodule" 

#add the submodule again 
git add submodule http://my-git-server/third-party.git third-party 

#get the latest code from the submodule 
git submodule update --remote 

Dies behoben mein Problem. Obwohl der Commit-Hash, den der Drittanbieter jetzt anzeigt, anders ist, bekomme ich den neuesten Code, wenn ich git submodule update --remote mache!

Verwandte Themen