git - несколько remotes
От: bnk СССР http://unmanagedvisio.com/
Дата: 28.11.20 20:23
Оценка:
Появилась тут ситуация, что нужно несколько remotes (удаленных репозиториев)
Как такое делается в git, было бы классно ссылку по теме?

Суть — есть библиотека на GitHub, которая используется в проекте. В ней есть косяки, также в нее нужно добавить некоторые фичи.
Библиотека не моя (форк). Используется через npm.

Сейчас сборка проекта настроена брать библиотеки вместо npmjs c devops artifacts (т.е. через прокси по сути)
Туда публикуется измененная версия оригинальной библиотеки (кастомная сборка), которая заменяет оригинальную, и подсовывается приложению.

Хочется иметь возможность вносить изменения в библиотеку, и обновляться с оригинала.
Также хочется периодически отправлять PR в исходную библиотеку.

Итого получается "конфигурация" из 3-х удаленных репозиториев:
— основной репозиторий библиотеки на github
— форк этого репозитория на github (из которого можно делать PR в основной)
— приватный репозиторий проекта на devops, из которого делается сборка "кастомной" версии.

Я так понимаю, для этого добавляется 3 remotes:

$ git remote -v
> origin    https://github.com/YOUR_USERNAME/NAME.git (fetch)
> origin    https://github.com/YOUR_USERNAME/NAME.git (push)
> upstream  https://github.com/ORIGINAL_OWNER/NAME.git (fetch)
> upstream  https://github.com/ORIGINAL_OWNER/NAME.git (push)
> build     https://user@dev.azure.com/org/project/_NAME(fetch)
> build     https://user@dev.azure.com/org/project/_NAME (push)
>

Я пока не очень понял, как эта конструкция работает с ветками?
То есть, как оно узнает куда пушить ветку? Это специально задается на push/pull, типа так?
> git pull origin master
> git push build master
Отредактировано 28.11.2020 20:51 bnk . Предыдущая версия . Еще …
Отредактировано 28.11.2020 20:31 bnk . Предыдущая версия .
Re: git - несколько remotes
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 28.11.20 21:36
Оценка: 12 (1) +1
Здравствуйте, bnk, Вы писали:

bnk>Появилась тут ситуация, что нужно несколько remotes (удаленных репозиториев)

bnk>Как такое делается в git, было бы классно ссылку по теме?

Ссылок не видно, но вообще банально. Только умолчания перестают работать.

Вот если залезешь в ~git/.config, увидишь там что-то вроде

[branch "master"]
        remote = origin
        merge = refs/heads/master


Поэтому, если ты сидя на master скажешь git pull, оно полезет по умолчанию — на origin. А если скажешь git pull repo2 master:master, то оно пойдёт пуллить repo2.
(Там ещё вопрос в режимах pull и push — есть одноветочный, есть все ветки на все, но локально по такой команде меняет состояние только для текущей ветки, остальные запоминает.)

bnk>Я пока не очень понял, как эта конструкция работает с ветками?

bnk>То есть, как оно узнает куда пушить ветку? Это специально задается на push/pull, типа так?
bnk>
>> git pull origin master
>> git push build master
bnk>


Да, так прямее всего.
The God is real, unless declared integer.
Re[2]: git - несколько remotes
От: bnk СССР http://unmanagedvisio.com/
Дата: 28.11.20 22:16
Оценка:
Здравствуйте, netch80, Вы писали:

N>Ссылок не видно, но вообще банально. Только умолчания перестают работать.


N>Вот если залезешь в ~git/.config, увидишь там что-то вроде


N>
N>[branch "master"]
N>        remote = origin
N>        merge = refs/heads/master
N>


N>Поэтому, если ты сидя на master скажешь git pull, оно полезет по умолчанию — на origin. А если скажешь git pull repo2 master:master, то оно пойдёт пуллить repo2.

N>(Там ещё вопрос в режимах pull и push — есть одноветочный, есть все ветки на все, но локально по такой команде меняет состояние только для текущей ветки, остальные запоминает.)

bnk>>Я пока не очень понял, как эта конструкция работает с ветками?

bnk>>То есть, как оно узнает куда пушить ветку? Это специально задается на push/pull, типа так?
bnk>>
>>> git pull origin master
>>> git push build master
bnk>>


N>Да, так прямее всего.


Понятно, пасиб! Чем дальше в лес тем толще партизаны
Поскольку всегда работал по умолчанию, не подозревал что там уже все есть.

VS Code кстати (с Git Graph) начинает забавно выглядеть когда подобное включаешь (когда несколько remotes). Но вроде все отображается и функционирует как надо

Отредактировано 28.11.2020 22:32 bnk . Предыдущая версия .
Re: git - несколько remotes
От: omgOnoz  
Дата: 26.04.21 09:06
Оценка:
Здравствуйте, bnk, Вы писали:

Зачем консоль?

В gitk выбираешь в какую remote ветку пушить изменения и все...

А git remote update подтягиваешь все remote ветки
Отредактировано 26.04.2021 9:06 omgOnoz . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.