С учетом репо Foo и панели репо. Я хочу объединить Bar с Foo, но только в отдельную ветвь, называемую baz.
git checkout -b baz <= введите здесь репо бар.
С учетом репо Foo и панели репо. Я хочу объединить Bar с Foo, но только в отдельную ветвь, называемую baz.
git checkout -b baz <= введите здесь репо бар.
Вы не можете объединить хранилище с веткой. Вы можете объединить ветку из другого хранилища в ветку в вашем локальном хранилище. Предполагая, что у вас есть два репозитория, foo и bar оба расположены в вашем текущем каталоге:
$ ls
foo bar
Перейдите в хранилище foo:
$ cd foo
Добавьте репозиторий bar в качестве удаленной ветки и извлеките его:
$ git remote add bar ../bar
$ git remote update
Создайте новую ветку baz в репозитории foo исходя из того, какая у вас текущая ветка:
$ git checkout -b baz
Слить ветку somebranch из репозитория bar в текущую ветку:
$ git merge --allow-unrelated-histories bar/somebranch
(--allow-unrelated-histories не требуется до git версии 2.9)
Обновлено с помощью "реальных" команд:
Начните с вашего репозитория, убедитесь, что ваша рабочая копия чистая (файлы не изменены, добавлены или удалены).
Создайте новую ветку:
git checkout -b <my-branch>
Добавьте вторичный пульт, затем извлеките его:
git remote add <repo-name> [email protected]:xxx/<repo-name>.git
git remote update
Объедините одну из их веток в вашу текущую ветку:
git merge <repo-name>/<their-branch>
Если вы не знаете, какое <their-branch> вы хотите, тогда <their-branch> к master
Если вы уверены, что хотите принять все удаленные изменения и избежать конфликтов (перезаписать свои), то вы можете указать -X theirs как вариант для git merge на последнем шаге.
Если вы хотите добавить его в подкаталог, то, вероятно, вам следует использовать подмодули git.
Используя руководство от жаворонков, я смог сделать это с помощью SourceTree.