Каково соглашение для добавления некрасивого кода в репозиторий git? - PullRequest
1 голос
/ 08 марта 2012

Мое текущее использование git можно охарактеризовать как «делать рано и часто». Я, конечно, пытаюсь сделать каждый коммит отдельной логической единицей (как обсуждено в критерии правильного коммита ). Тем не менее, я часто повторяю дизайн и хочу сохранить каждый этап. Если я придумываю что-то уродливое, но функциональное, я хочу зафиксировать эту контрольную точку, прежде чем что-то очистить.

Каков ваш опыт в этом вопросе, вызвал ли он проблемы для вашей команды? Выходя за пределы уродливого кода - допустимо ли локально фиксировать испорченный код, если вы не нажмете, пока ошибки не будут исправлены?

Ответы [ 3 ]

7 голосов
/ 08 марта 2012

Самым распространенным соглашением для этого является использование функциональной ветви (или набора ветвей), которая находится в вашем хранилище - и, возможно, где-то в сети, например, GitHub или Gitorious.

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

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

0 голосов
/ 08 марта 2012

Другой вариант оформления заказа:

git stash

Эта ссылка имеет хорошее резюме: http://csurs.csr.uky.edu/cgi-bin/man/man2html?1+git-stash

0 голосов
/ 08 марта 2012

вызвало ли это проблемы у вашей команды?

Не для меня / моей команды. Пока вы не нажмете неработающий код, это не повлияет на ваших товарищей по команде - по крайней мере, пока вы не будете искать прошлые коммиты.

Допустимо ли локально фиксировать поврежденный код, если вы не нажимаете, пока ошибки не будут исправлены?

Я так думаю, но я также думаю, что вы найдете ответ на этот вопрос очень субъективным.

Если вы действительно обеспокоены нажатием коммитов, которые могут содержать промежуточные прерванные коммиты, Сквош мои последние X коммитов вместе, используя Git

Вы можете найти больше рекомендаций / мнений на частота коммитов git , некоторые из них более жесткие, чем у меня, но не без достоинств:

  • Руководство для самого проекта Git - один коммит на «логически отдельный набор изменений».
    ( Скотт Чакон )
  • Также вы хотели бы, чтобы каждая комитированная версия работала корректно (это помогает разделить пополам для поиска ошибок) ( Jakub Narębski )
  • если у вас есть проект, совершайте коммиты, когда захотите. Если вы редактируете чужой проект, сделайте коммит, когда патч закончится ( Тайлер Джиллис )

Список можно продолжить ...

...