Я очень смущен о git-подмодулях.
В основном моя проблема заключается в том, что я не могу заставить git понять, что ~/main-project/submodule
является подмодулем.
У меня есть хороший опыт работы с подмодулями git:
в моем репозитории dotfiles я создал файл.gitmodules в ~/dotfiles-repo
и я добавил туда пути и URL-адреса. С тех пор, если я вношу изменения в файлы в подмодулях и запускаю git status
, я бы получил что-то вроде: .vim/bundle/auto-complete (new commits) # in red
Я создал файл .gitmodules
в ~/main-project
но:
- Если я вношу изменения в
~/main-project/submodule
и даже вставляю изменения, я не получаю аналогичный ответ, например,<submodule> (new commits) # in red
при запускеgit status
в~/main-project
. Я просто получаю изменения, которые были сделаны в этих каталогах -
Когда я нажимаю ссылки на папки в
github
для этих каталогов, он не направляет меня непосредственно в репозитории, но я остаюсь в том же репозитории.- Может быть, мне не хватает всего. Каковы основные черты подмодулей?
- Почему git понимает подмодули в реплике dotfiles, но не в моем другом репо?
- Это потому, что я уже сказал git, чтобы добавить файлы в
~/main-project/submodule
к индексу?
Я прочитал этот вопрос, который привел меня к этому ответу Но я не уверен, что мне нужно git-subtree
. Я не хочу делать вещи, которые могут сильно изменить, чтобы их можно было вернуть.
Изменение: это предлагаемое дублирующее решение тоже не сработало, я получил сообщение об ошибке, по которой
Updates were rejected because the remote contains work that you do not have locally
. Кажется, что @GabLeRoux практически сказал мне нажать<repo-A>
на URL-адрес<repo-B>
.