Сообщение git - несколько remotes от 28.11.2020 20:23
Изменено 28.11.2020 20:31 bnk
git - несколько remotes
Появилась тут ситуация, что нужно несколько remotes (удаленных репозиториев)
Как такое делается в git, было бы классно ссылку по теме?
Суть — есть библиотека на GitHub, которая используется в проекте. В ней есть косяки, также в нее нужно добавить некоторые фичи.
Библиотека не моя (форк). Используется через npm.
Сейчас сборка проекта настроена брать библиотеки вместо npmjs c Azure Devops artifacts (т.е. через прокси по сути)
Туда публикуется "измененная" версия оригинальной библиотеки (кастомная сборка), которая заменяет оригинальную, и подсовывается приложению.
Хочется иметь возможность вносить изменения в библиотеку, и обновляться с оригинала.
Также хочется периодически отправлять PR в исходную библиотеку.
Итого получается "конфигурация" из 3-х удаленных репозиториев:
— основной репозиторий библиотеки на github
— форк этого репозитория на github (из которого можно делать PR в основной)
— приватный репозиторий проекта на devops, из которого делается сборка "кастомной" версии.
Я так понимаю, для этого добавляется 3 remotes:
Я пока не очень понял, как эта конструкция работает с ветками?
То есть, как оно узнает куда пушить ветку? Это для каждой ветки специально задается, или как?
Как такое делается в git, было бы классно ссылку по теме?
Суть — есть библиотека на GitHub, которая используется в проекте. В ней есть косяки, также в нее нужно добавить некоторые фичи.
Библиотека не моя (форк). Используется через npm.
Сейчас сборка проекта настроена брать библиотеки вместо npmjs c Azure 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)
>
Я пока не очень понял, как эта конструкция работает с ветками?
То есть, как оно узнает куда пушить ветку? Это для каждой ветки специально задается, или как?
git - несколько remotes
Появилась тут ситуация, что нужно несколько remotes (удаленных репозиториев)
Как такое делается в git, было бы классно ссылку по теме?
Суть — есть библиотека на GitHub, которая используется в проекте. В ней есть косяки, также в нее нужно добавить некоторые фичи.
Библиотека не моя (форк). Используется через npm.
Сейчас сборка проекта настроена брать библиотеки вместо npmjs c Azure Devops artifacts (т.е. через прокси по сути)
Туда публикуется "измененная" версия оригинальной библиотеки (кастомная сборка), которая заменяет оригинальную, и подсовывается приложению.
Хочется иметь возможность вносить изменения в библиотеку, и обновляться с оригинала.
Также хочется периодически отправлять PR в исходную библиотеку.
Итого получается "конфигурация" из 3-х удаленных репозиториев:
— основной репозиторий библиотеки на github
— форк этого репозитория на github (из которого можно делать PR в основной)
— приватный репозиторий проекта на devops, из которого делается сборка "кастомной" версии.
Я так понимаю, для этого добавляется 3 remotes:
Я пока не очень понял, как эта конструкция работает с ветками?
То есть, как оно узнает куда пушить ветку? Это специально задается на push/pull, типа так?
Как такое делается в git, было бы классно ссылку по теме?
Суть — есть библиотека на GitHub, которая используется в проекте. В ней есть косяки, также в нее нужно добавить некоторые фичи.
Библиотека не моя (форк). Используется через npm.
Сейчас сборка проекта настроена брать библиотеки вместо npmjs c Azure 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