Дано repo Foo та repo Bar. Я хочу об'єднати Bar з Foo, але лише в окрему гілку, що називається baz.
git checkout -b baz <= помістіть сюди Bar Repo.
Дано repo Foo та repo Bar. Я хочу об'єднати Bar з Foo, але лише в окрему гілку, що називається baz.
git checkout -b baz <= помістіть сюди Bar Repo.
Відповіді:
Ви не можете об'єднати сховище у відділення . Ви можете об'єднати гілку з іншого сховища у гілку у вашому локальному сховищі. Припустимо, що у вас є два сховища, 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> git@github.com:xxx/<repo-name>.git
git remote update
Об’єднайте одну з їх гілок у поточну галузь:
git merge <repo-name>/<their-branch>
Якщо ви не знаєте, чого <their-branch>хочете, тоді йдітьmaster
Якщо ви впевнені, що хочете прийняти всі віддалені зміни та уникнути конфліктів ( замініть свої ), тоді ви можете вказати -X theirsяк варіант для git mergeостаннього кроку.
Якщо ви хочете додати його у підкаталог, то, ймовірно, вам слід скористатися підмодулями git
Використовуючи посібник з ларок, я зміг це зробити за допомогою SourceTree.
--allow-unrelated-historiesдо команди git merge.