Próbuję dodać kilka podmodułów do mojego .vim/bundles
katalogu, a kiedy próbuję dodać to konkretne repozytorium, Git daje mi dziwny błąd, którego nigdy wcześniej nie widziałem:
$ git submodule add -f git://github.com/derekwyatt/vim-scala.git .vim/bundle/vim-scala
fatal: You are on a branch yet to be born
Unable to checkout submodule '.vim/bundle/vim-scala'
Każdy pomysł, co może to spowodować?
Jeśli sklonuję to samo repozytorium do katalogu testowego (nie za pomocą polecenia submodułu), działa dobrze i tworzy oczekiwane pliki.
git
git-submodules
matowe b
źródło
źródło
.vim/bundle/vim-scala
ścieżki do usunięcia, było.git/modules/.vim/bundle/vim-scala
dir /AH
.git/modules/path/to/submodule
katalogu i próbie ponownego dodania modułu podrzędnego pojawia się błąd Następująca ścieżka jest ignorowana przez jeden z plików .gitignore: ścieżka / do / podmoduł .Trzeba dodać submodule wewnątrz istniejącego repo, że repo musi być w stanie dodać & popełnić link submodule, a modułem repo sobie musi mieć popełnić sprawdzić.
Teraz samo repozytorium podmodułów musi być w porządku, jeśli możesz utworzyć zwykły klon w innym miejscu. Jednak wygląda na to, że
submodule add
narzeka, jeśli repozytorium jest puste, a klon nie. Ten facet sugeruje, że można to naprawić, po prostu ponownie uruchamiając to samosubmodule add
polecenie.Jeśli repozytorium wewnętrzne nie jest puste, sprawdź repozytorium, które ma zawierać podmoduł. Przejdź do tego samego katalogu, w którym uruchomiłeś
git submodule add
i uruchomgit status
, igit branch
sprawdź, czy Twoje repozytorium zawierające co najmniej jedną gałąź zostało utworzone i nie jest w dziwnym stanie.źródło
master
gałąź. Repozytorium, do którego próbuję dodać to jako moduł podrzędny, znajduje się wmaster
gałęzi, nie ma oczywistych problemów (status zwraca niektóre zmodyfikowane pliki, ale to wszystko), a najdziwniejsze jest to, że mogę dodać inne moduły podrzędne w porządku do tego repozytorium .fatal
ostrzeżeniu z mojego OP, git zostawia pusty katalog w.vim/bundle/vim-scala
. Zauważyłem również, że chociaż.gitmodules
jest nietknięty, dodał kilka wierszy odnoszących się do tego repozytorium github.com do.git/config
, ale po ich usunięciu nadal otrzymuję ten samfatal
komunikat o błędzie.This guy suggests this is fixable by just running the same submodule add command again.
. Walczyłem z tym problemem, próbując znaleźć rozsądną odpowiedź, a to w końcu go rozwiązało. To było dla git 1.8.0 pod MSYS podczas tworzenia modułu podrzędnego z BitBucket, więc jeśli jesteś w takiej samej sytuacji, spróbuj najpierw.Ten błąd może wystąpić, jeśli dodajesz moduł podrzędny, który nie ma
master
gałęzi. Jeśli chcesz użyć innej gałęzi podczas dodawania modułu podrzędnego (develop
na przykład), możesz użyć następującego polecenia:źródło
git submodule add -b master <repo.git> <folder>
pomogłomaster
działa dla mnie.Jak wspomniał @ drew-noakes, może to być spowodowane próbą dodania modułu podrzędnego przy użyciu nazwy katalogu wymienionej w pliku .gitignore .
źródło