git push, не нажимайте все локальные коммиты - PullRequest
10 голосов
/ 13 октября 2011

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

Это хороший способ работы с git?Это возможно?Или я не так думаю?

Ответы [ 2 ]

6 голосов
/ 13 октября 2011

Один из способов справиться с этим - создать собственную ветку разработки в своем локальном хранилище. Это просто обычная ветка, ничего особенного, но коммиты на ветке не будут выталкиваться в центральный репозиторий при запуске git push. Когда вы будете готовы поделиться своими изменениями, объедините коммиты из вашей личной ветки с главной веткой, а затем вы можете отправить их в центральный репозиторий.

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

4 голосов
/ 13 октября 2011

Рабочий процесс Git поощряет вас очищать ваши локальные (ранние и часто) коммиты в логическую последовательность коммитов, которая шаг за шагом ведет читателя к реализации вашей новой работы. Это можно сделать с помощью функции git rebase -i и других инструментов. Благодаря этому вы можете изменить порядок, отредактировать, разделить и зафиксировать коммиты по мере необходимости, чтобы все это выглядело хорошо. Затем отправьте этот набор коммитов на сервер и, конечно, сохраните его локально.

Этот рабочий процесс ни в коем случае не требуется. Вы можете отправить все свои подробные коммиты на сервер (но вы утверждаете, что это становится «хаотичным»), или вы можете свести свою работу в один коммит и подтолкнуть его вверх. Что вы не можете разумно сделать, это отправить один коммит на сервер, сохраняя другой набор локально.

...