Обновление рабочего дерева до Git's HEAD - PullRequest
4 голосов
/ 07 февраля 2010

Кажется, я сказал, что все правильно.

У меня есть промежуточный сервер с Git, мой друг, и я отправляю изменения в репозиторий Git из наших локальных клонов, когда мы готовы сделать что-то публичное, мы помечаем это всем , но затем я должен сделать git reset --hard, чтобы обновить фактические файлы на сервере до HEAD, что мне кажется немного странным.

Я думаю, что проблема может быть в неправильном понимании того, как работает git. Обычно я делаю свой код в локальном репо, работаю над ним, затем объединяю его с основным репо, затем git push, это правильно?

Извините, я довольно новичок, когда дело доходит до git, любые ресурсы для работы с удаленными репозиториями git будут с благодарностью, спасибо!

Ответы [ 4 ]

7 голосов
/ 07 февраля 2010

Звучит так, как будто вы продвигаетесь к неоснащенному репо на вашем сервере. Когда вы нажимаете на репо, внутреннее состояние репо изменяется, но извлеченные файлы не обновляются, поэтому вы должны сделать git reset --hard (или git checkout) для извлечения обновленных копий файлов. По этой причине рекомендуется делать только репо. Вы можете создать голое репо, используя git --bare init или git clone --bare.

2 голосов
/ 08 февраля 2010

Zack,

Мне кажется, проблема в том, что ваш пульт не является пустым хранилищем (т. Е. С ним связано рабочее дерево). Вы не должны никогда вставлять в не-пустой репозиторий, потому что это обновляет индекс / кэш, но не рабочее дерево. Рабочее дерево репозитория (не пустое) корректно обновляется только при запуске git reset --hard, потому что эта команда изменяет состояние рабочего дерева, чтобы отразить состояние последнего коммита, т. Е. Коммита, который вы только что выдвинули.

Удаленный репозиторий должен быть создан с флагом «--bare», т. Е. Вы должны создать репо, вызвав:

$ git init --bare

и тогда вы можете корректно вставить в него свои изменения.

Я описываю рабочий процесс разработки с использованием нескольких репозиториев здесь , в то время как я предоставляю сценарии / псевдонимы / советы во второй части статьи.

1 голос
/ 07 февраля 2010

Я не до конца понимаю ваш вопрос, но я могу порекомендовать вам этот рабочий процесс , который был очень полезен для нашей команды. В этом другом посте вы найдете сценарии для его автоматизации, но я обнаружил, что лучше всего с самого начала запускать полные команды git для интериоризации процесса.

Кроме того, этот ресурс о размещенных репозиториях и gitosis очень хорош. Эти практические ссылки, а также чтение книги о git, очень помогли нам быстро освоить git.

1 голос
/ 07 февраля 2010

Отличным ресурсом является книга Pro Git Скотта Чакона. Его можно найти в Интернете по адресу http://progit.org/book

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...