@marink0

Как правильно пушить локально в non-bare репозиторий?

Есть локальный репозиторий и его клон, все на одной машине.
Как запушить из клона в origin master?
Выибивает ошибку что non-bare репозиторий.
Создав новый репозиторий теперь уже bare, но я не догоняю как это использовать - получается он содержит не мои исходники, а содержимое папки .git.

Как правильно и безопасно пушить не делая репозиторий bare?
  • Вопрос задан
  • 202 просмотра
Решения вопроса 1
sergey-kuznetsov
@sergey-kuznetsov Куратор тега Git
Автоматизатор
«Пушить локально» это масло масляное. Мы всегда пушим локально, но во внешний (remote) репозиторий. Понятия внешний и локальный тут относительны, так как все репозитории в Git равноправны и могут обмениваться коммитами в любых направлениях. Причём репозитории запросто могут лежать на локальном компьютере. Репозиторий откуда мы выполняем команды push/fetch/pull называется «локальным», а тот откуда/куда передаём данные называется «внешним». Я не люблю перевод слова remote как удалённый, потому что потом возникают дикие конструкции типа «удалить удалённый», которые ломают мозг.

Выибивает ошибку что non-bare репозиторий.

Вы невнимательно читаете текст ошибки. Там ключевое слово current branch in a non-bare repository, т. е. нельзя пушить в текущую ветку, которая в данный момент распакована в рабочем каталоге. В голом репозитории (bare) нет рабочего каталога, поэтому такой проблемы не возникает.

Как правильно синхронизировать ветки репозиториев? Способов много
1. Перед push зайти во «внешний» репозиторий и переключиться в другую ветку.
2. Вместо push из «локального» репозитория можно делать pull, находясь во «внешнем».
3. Можно заставить Git игнорировать проблему, но рабочий каталог «внешнего» репозитория просто не будет актуализироваться сам, нужно будет потом там вручную делать git reset --hard
4. Сделать целевой репозиторий голым, но тогда вы не сможете в него коммитить напрямую.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@aol-nnov
правильно - не пушить в non-bare репозиторий.
Ответ написан
Ваш ответ на вопрос

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

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