Git Подмодуль - Невозможно получить доступ к хранилищу, используя Linux Подсистему для Windows - PullRequest
1 голос
/ 13 апреля 2020

Я пытаюсь добавить подмодуль Git в другой репозиторий. Я создал репозиторий, в котором я хочу его, но субмодуль был создан моим советником.

Для удобства, скажем, подмодуль, который я пытаюсь добавить, - это хранилище A, а я пытаюсь добавить его в хранилище B.

Пара замечаний:

  1. Я использую подсистему Linux для Windows (т.е. приложение терминала Ubuntu).
  2. У меня есть активное соединение inte rnet и я могу получить доступ к обоим репозиториям через стандартные команды git (git pull, pu sh, commit, et c.)
  3. Я могу заставить весь мой код работать нормально, используя символические c ссылки на A.

Вот шаги, которые я предпринимаю, чтобы добавить A к B и соответствующие выводы терминала.

In: git submodule add git@gitlab.com:Respository_B

Вышеуказанная строка работала нормально, и я вижу правильную информацию в файл .gitmodules, это вывод:

[submodule "Repository_B"]       
    path = repository_B
    url = git@gitlab.com:Repsitory_B

Теперь я попробовал следующие две вещи:

In: git submodule init
Out: fatal: No url found for submodule path 'submodule_A' in .gitmodules

и,

In: git submodule update --remote
Out: setsockopt IPV6_TCLASS 8: Operation not permitted: 

I ' Я в тупике. Я попытался найти решение онлайн, но пришел с пустыми руками. Есть идеи, как это исправить?

Кроме того, если мне нужно что-то уточнить, пожалуйста, дайте мне знать.

Спасибо!


РЕДАКТИРОВАТЬ


Я просто прочитал , что существуют некоторые проблемы с chmod в подсистеме Windows, поэтому я попробовал эту строку и получил другое сообщение об ошибке.

In:  sudo git submodule update --remote 
Out: git@gitlab.com: Permission denied (publickey). 
     fatal: Could not read from remote repository. 

     Please make sure you have the correct access rights
     and the repository exists.
     Unable to fetch in submodule path 'Repository_A'

Это странно, потому что я могу получить доступ к хранилищу по символической c ссылке, которую я сделал на локальный клон.

1 Ответ

1 голос
/ 13 апреля 2020

Я пытаюсь добавить это хранилище A, а я пытаюсь добавить его в хранилище B.

Тогда команда будет:

cd /path/to/B
git submodule add git@gitlab.com:Respository_A
git commit -m "Add A to B"
git push

Что касается сообщения об ошибке, эта проблема предлагает:

Обходное решение, которое мы используем, - поместить следующую строку в ~ / .ssh / config:

AddressFamily inet

Примечание. Использование AddressFamily inet прекрасно работает, если вы подключаетесь к хосту IPv4. Если хост только IPv6, он вообще не будет подключаться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...