Можно ли создать git-репозиторий, где ветви - это клоны из других репозиториев? - PullRequest
2 голосов
/ 30 ноября 2010

Вот ситуация: я унаследовал две отдельные машины, одна использовалась для "разработки", другая - рабочая машина.Проблема: они, конечно, не синхронизированы.Чтобы придать здравый смысл ситуации, я создал независимые git-репозитории каталога приложений на каждой машине.

Теперь я хочу иметь возможность сравнивать эти репозитории, чтобы узнать, что между ними отличается.Моя идея заключалась в том, чтобы создать третий репозиторий, содержащий две ветви: одну из репозитория машины «dev» и одну из репозитория машины «prod».

Возможно ли это или эквивалентное решение с помощью git?

Спасибо.

Ответы [ 2 ]

3 голосов
/ 30 ноября 2010

Это будет использовать то, что Git называет "удаленными", , которые являются ссылками на то, что содержится в удаленном репозитории, чтобы вы могли перетащить его в свою собственную ветку, а свою ветку переместить в удаленный репозиторий. и т. д. Вы можете настроить пульт для каждой из других машин, а затем провести различие между ними, чтобы сравнить их, и вы можете создать одну или несколько локальных ветвей из этих пультов, если вы хотите выполнять локальную работу.

Что бы я предложил для вашей ситуации, это клонировать ваш репозиторий разработки, который создаст ваш третий репозиторий, в котором вы будете работать, и автоматически создаст удаленный сервер с именем origin, который указывает на ваш репозиторий разработки (это условное название места по умолчанию «вверх по течению», куда вы будете тянуть от толчка к). Затем добавьте пульт для prod, и теперь вы можете сравнить их и работать с ними локально. Например:

git clone me@dev-server:/path/to/repo.git
cd repo
git remote add prod me@prod-server:/path/to/repo.git
git remote update
git diff origin/master prod/master
0 голосов
/ 30 ноября 2010

Самый простой способ - сначала зафиксировать все изменения в dev.Затем создайте новую ветку в dev, которая называется production с git branch production и git checkout production.Затем поместите все рабочие файлы в dev и перезаписайте (за исключением файлов .git из производства).

Теперь у вас есть все изменения по сравнению с dev.Вы можете сделать git diff и просмотреть изменения и статус git, чтобы увидеть новые файлы и какие файлы были изменены.Зафиксируйте его, и тогда вы сможете замедлить слияние.

Я бы порекомендовал этот метод вместо всего 2 репо.Гораздо проще, когда ваш разработчик и продакшн находятся в одном репо.

...