git pull поддерево удаляет все
Я пытаюсь воспользоваться функцией поддерева в git, где у меня может быть репо, ссылающееся на другое репо, и, таким образом, кажется, что у него есть все файлы обоих репо. Я прочитал несколько вступлений здесь и здесь и попытался следовать им.
Итак, у меня есть два репозитория в git hub. я сделаю это
git checkout testBranchA
git pull origin testBranchA
git remote add external git@github.com:reharik/repoB
git fetch external
git checkout -b external external/testBranchB
git read-tree --prefix=src/ -u external
git commit -m "added subtree"
так что теперь я смотрю на свой файл sys и вижу все файлы из обоих репозиториев, и все замечательно. Тогда я делаю
git pull -s subtree external testBranchB
и кажется, что все в обоих локальных репо удаляется. сначала заразить
removing src/...
для всех файлов, то, кажется, происходит слияние, когда вы видите все файлы с красными и зелеными + и 'и', то это делает
delete mode 100644 src/...
для всех файлов
Так что я не уверен, что я делаю неправильно, но ясно, что это что-то.
Любая помощь будет оценена
=== редактировать извините, что продолжаю изменять команды, я немного поджарен, но я думаю, что это синтаксис, который я использую
1 ответ
Что в прошлом git pull -s subtree ...
Команда не кажется правильной, так как она не принимает во внимание местоположение поддерева. Так как он попытается объединить оба дерева на корневом уровне, что может быть причиной удаления файлов.
Попробуйте вместо этого:
git pull -s recursive -X subtree=src/ external testBranchB