Git несколько репозиториев (удаленная копия локальных изменений 3-го репозитория) - PullRequest
1 голос
/ 23 мая 2019

Это сценарий, который продолжает появляться для меня, но я буду использовать конкретный пример, с которым я сейчас работаю.

У меня есть локальный клон удаленного хранилища (в данном случае Марлин). Я делаю локальные изменения конфигурации и строю. Они не представляют интереса для пользователей Marlin, но я хочу, чтобы они контролировались версиями. Поэтому я создаю ветку и помещаю ее в репозиторий на своем собственном сервере (не на GitHub).

Я настроил это и работаю с моей начальной веткой. Позже я извлекаю репозиторий с моего сервера, но он не знает об исходном репозитории Marlin, ни для существующих, ни для новых ветвей филиалов Marlin.

Я ищу рекомендации для рабочего процесса, которые позволят мне: 1. Перетащите обновления из репозитория Marlin в мою ветку 2. Создайте новую ветвь из репозитория Marlin, которая будет управляться версией в репозитории моего сервера

Извините, если это базовый материал, но эта парадигма с несколькими хранилищами является новой для меня.

Git версии: местный 2.20.1 сервер 2.7.4

Ответы [ 2 ]

0 голосов
/ 23 мая 2019

То, что вы просите, вполне разумно. Это стандартный рабочий процесс в программном обеспечении с открытым исходным кодом, когда хранилище разветвляется, поэтому у вас есть два удаленных хранилища: одно, которое принадлежит вам (origin), и другое, которым владеет кто-то другой (upstream).

Рабочий процесс может выглядеть примерно так:

# Clone down the Marlin repository
git clone https://github.com/person/marlin.git

# Move into the repository's directory
cd marlin

# List your current remotes
git remote -v

### Example output:
### origin      https://github.com/person/marlin.git (fetch)
### origin      https://github.com/person/marlin.git (push)

Как видите, теперь у вас есть один пульт, называемый "источник". Но это тот, который принадлежит кому-то другому, поэтому давайте назовем его «upstream», как это классическое имя

# Rename the "origin" remote to "upstream"
git remote rename origin upstream

Теперь вы должны пойти на свой сервер и создать репозиторий, а затем получить URL-адрес клона. Получив этот URL, вы можете добавить его в качестве второго пульта, например:

# Add a second remote to your repository
git remote add origin https://example.com/foo/marlin.git

И, наконец, подтолкнуть любые ветви, которые вы хотите, к репо-источнику, которым вы владеете

# Push the master branch to the repo you owns
git push origin master
0 голосов
/ 23 мая 2019

Просто добавьте оригинальное gh-репо в качестве нового пульта к этому новому репо, и тогда вы сможете извлечь из него и все такое.

git remote add original https://github/blahblah.git
git fetch original

И там вы увидите материал в оригинальном githubрепо (пульт можно назвать как угодно ... оригинал, апстрим, гх, как хочешь).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...