добавить модифицированный подмодуль git, который не принадлежит - PullRequest
0 голосов
/ 04 ноября 2019

Можно ли добавить подмодуль git, который вы модифицировали локально, но владельцем которого вы не являетесь и, следовательно, не можете отправить его на удаленный компьютер? В настоящее время мой репо только добавляет ссылку на оригинальный подмодуль, но без моих модификаций к нему. Но я хочу, чтобы весь контент, включая мои модификации, был перенесен в мое удаленное хранилище.

До сих пор я делал следующее:

cd my_repo
git submodule add git@mygithost:submodulue submodule
git submodule init && git submodule update
cd submodule
<changes, hacks>
git commit -am 'modify submodule'
cd .. && git status

> On branch master
Your branch is up to date with 'origin/master'.

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)
  (commit or discard the untracked or modified content in submodules)

    modified:   submodule (untracked content)

no changes added to commit (use "git add" and/or "git commit -a")

1 Ответ

0 голосов
/ 04 ноября 2019

Я хочу, чтобы весь контент, включая мои модификации, был перенесен в мое удаленное хранилище.

Вы не можете сделать это точно, потому что вы не можете отправить свои локальные изменения в исходный подмодуль. Но вы можете обойти эту проблему, разветвив подмодуль.

Сначала выполните форк git@submodulehost:submodulue до git@mygithost:submodulue. Если вы не можете разветвлять его непосредственно в клоне submodulehost и нажать: создайте новый пустой репозиторий git@mygithost:submodulue и выполните

git clone -o upstream git@submodulehost:submodulue
cd submodule
git remote add origin git@mygithost:submodulue
git push --all origin

Затем используйте разветвление в качестве источника для вашего подмодуля:

cd ../superproject/submodule
git remote set-url origin git@mygithost:submodulue
git remote add upstream git@submodulehost:submodulue

Исправьте код и протолкните его на вилку:

git push -u origin master
...