Слить репозиторий Git в ветке другого РЕПО


учитывая РЕПО Foo и РЕПО бар. Я хочу объединить бар с Foo, но только в отдельную ветку, под названием baz.

git checkout -b baz

2 52

2 ответа:

вы не можете объединить a хранилище на филиала. Вы можете объединить филиала из другого репозитория в филиала в вашем локальном репозитории. Предполагая, что у вас есть два репозитория,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)

обновлено с помощью команд" real-life":

начните с вашего каталога РЕПО, убедитесь, что ваша рабочая копия чиста (нет файлов, измененных, добавленных или удаленных).


создать новую ветку:

git checkout -b <my-branch>

добавить вторичный пульт дистанционного управления, а затем извлечь его:

git remote add <repo-name> git@github.com:xxx/<repo-name>.git
git remote update

объединить одну из своих ветвей в вашей текущей ветви:

git merge <repo-name>/<their-branch>


если вы не знаете, какой <their-branch> хочешь, тогда вперед master

если вы уверены, что хотите принять все удаленные изменения и избежать конфликтов (перезаписать ваши), то вы можете указать -X theirs как вариант git merge в последнем шаге.

если вы хотите добавить его в подкаталог, то, вероятно, вы должны, вероятно, использовать git подмодули