@jony721

Как синхронизировать проект с удалённым репозиторием?

1. Имеется проект на удалённом репозитории.
2. Он также имеется на сервере. У меня его нет.
3. Я его выкачал с сервера.
4. Моя задача: Проверить есть ли какие-то изменения на скачанном с сервера проекте, которых нет на удалённом репозитории. Если да, то сделать commit и push их на удалённый репозиторий.

Я сделал
git init
git remote add origin ....

Что дальше?
  • Вопрос задан
  • 217 просмотров
Решения вопроса 2
sergey-kuznetsov
@sergey-kuznetsov Куратор тега Git
Автоматизатор
Ох уж эти трудности перевода)) remote обычно переводят на русский как удалённый. Но что если я захочу удалить remote? Удалить удалённый?
Поэтому лучше говорить «внешний», чтобы не путаться. Мы работаем с локальным репозиторием, а все остальные по отношению к нему будут внешними. В Git нет централизации, все репозитории равноправны и могут обмениваться информацией в произвольных направлениях.

Итак: у нас есть два внешних репозитория и хочется их синхронизировать? Без проблем.
Можно использовать локальный компьютер как вспомогательный.

Я сделал
git init
git remote add origin ....


Начало уже нелогичное. Ты же говоришь что уже выкачал репозиторий с сервера?
Т. е. выполнил git clone <server1>
Это уже создало копию репозитория и init не нужен. А ещё это автоматически создало ссылку origin тоже.

Дальше можно поменять адрес origin на второй сервер
git remote set-url origin <server2>

И сразу увидим в git status есть ли отличия.
Хотя нет, вру. Надо после смены адреса скачать к себе заново внешние ветки командой
git fetch
Только тогда будет что сравнивать.

Примерно так. Это первое что пришло в голову и пожалуй грубовато. Можно придумать более аккуратную схему.

Я бы лучше не удалял старый remote, а добавил новый. То что ты «скачал с сервера» пусть так и останется как origin. А «удалённый» репозиторий обозначим как upstream
git remote add upstream <server2>
git fetch upstream

Тогда мы сможем сравнивать любые ветки и синхронизировать.
Ответ написан
Комментировать
karabanov
@karabanov
Системный администратор
Клонируй проект из удалённого репозитория к себе.
В эту же директорию скачай проект с сервера с заменой файлов.
Введи git status, чтобы посмотреть, что изменилось и прими решение, что делать дальше.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы