С учетом репо 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.