@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 настраивать и т.д.

Есть ли какой-то вариант решить эту проблему с помощью гита?
  • Вопрос задан
  • 3306 просмотров
Решения вопроса 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 настраивать и т.д.

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

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

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

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