Задать вопрос
@0kkama
junior backend

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

Дано:
1. Репозиторий в GitHub
2. Тестовый локальный вариант проекта
3. Прод. вариант этого проекта

В директории прода иницилизирован гит и я могу делать пуш и пулл в репу на гитхабе. Всё ок.
А вот в директории тестового проекта я пока сделал только git init, но он еще не привязан к удалённому репозиторию на гитхабе.
Собственно вопрос: как правильно синхронизировать тестовый проект с удалённым репозиторием. Я пробовал git pull и git fetch ,но выдаёт ошибки:

git remote add origin git@github.com:projectname
git remote -v
origin  git@github.com:projectname (fetch)
origin  git@github.com:projectname (push)

git pull origin
From github.com:projectname
 * [new branch]      master     -> origin/master
You asked to pull from the remote 'origin', but did not specify
a branch. Because this is not the default configured remote
for your current branch, you must specify a branch on the command line.

git pull origin/master
fatal: 'origin/master' does not appear to be a git repository
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.

git fetch origin 
-- ошибок не выводит, но и результата никакого не даёт

Самый простой вариант, конечно, удалить тестовую директорию и просто сделать git clone , но тогда придётся по новой связь с тестовой БД устанавливать и FTP настраивать и т.д.

Есть ли какой-то вариант решить эту проблему с помощью гита?
  • Вопрос задан
  • 6337 просмотров
Подписаться 1 Простой 1 комментарий
Помогут разобраться в теме Все курсы
  • ProductStar
    Python + Flask + Git: веб-разработка с нуля
    2 месяца
    Далее
  • Учебный центр IBS
    DEV-007 Введение в систему контроля версий Git
    1 неделя
    Далее
  • Stepik
    Git (система контроля версий)
    1 неделя
    Далее
Решения вопроса 2
sergey-kuznetsov
@sergey-kuznetsov Куратор тега Git
Автоматизатор
Если вы будете использовать URL репозитория для ssh протокола, то вам необходимо сначала создать пару ключей и прописать открытый ключ в вашем аккаунте гитхаба. И проверить, чтобы в репозитории был открыт доступ для вашего аккаунта.

Но проще использовать ссылку https, чтобы не возиться с ключами.

git init # инициализировать репозиторий в папке тестового проекта
git remote add origin <URL> # указать адрес вышестоящего репозитория
git fetch # скачать вышестоящий репозиторий
git reset origin/master # установить указатель на ветку master
# существующие локальные файлы в рабочем каталоге измениться не должны
git branch --set-upstream-to=origin/master master 
# связать master с origin/master


Вы делаете почти правильно
git fetch origin
-- ошибок не выводит, но и результата никакого не даёт

Потому что вы ранее уже сделали pull, который включает в себя fetch
Если ничего не выводит, значит ошибок нет и изменений в origin тоже нет.

fatal: 'origin/master' does not appear to be a git repository

Гит говорит, что origin/master не является корректным адресом репозитория.
Правильный синтаксис: git pull origin master

И не называйте пожалуйста GitHub гитом.
Ответ написан
Комментировать
delphinpro
@delphinpro
frontend developer
не нужно локально делать git init.
сделайте клонирование удаленного репо, тогда всё уже будет настроено. Так проще.

в пустой папке проекта

git clone git@github.com:username/reponame.git .

Самый простой вариант, конечно, удалить тестовую директорию и просто сделать git clone , но тогда придётся по новой связь с тестовой БД устанавливать и FTP настраивать и т.д.

А, не заметил...

Ну ловите лайв-хак.
весь код копируете в левую папку.
очищаете папку проекта.
в папке проекта клонируете репу.
накатываете файлы из левой папки в папку проекта с перезаписью.
Получите актуальную копию удаленного репозитория со всеми локальными изменениями, если они были.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
ITK academy Нижний Новгород
от 50 000 до 90 000 ₽
Made In Dream Санкт-Петербург
от 100 000 до 220 000 ₽
от 250 000 до 320 000 ₽