Подтвердить что ты не робот

Git фиксировать частоту

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

Я также отслеживаю некоторые другие проекты, используя git как emacs, wordpress и т.д. Я вижу, что они не фиксируют это часто. Так что мне интересно, как из этого вы совершаете?

4b9b3361

Ответ 1

Рекомендация для самого проекта Git (и проекта Linux, AFAIK) - это одна фиксация на "логически отдельный набор изменений".

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

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

Ответ 2

Я также отслеживаю некоторые другие проекты, используя git как emacs, wordpress и т.д. Я вижу, что они не фиксируют это часто.

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

Ответ 3

В конце концов я заканчиваю выполнение функции функцией

Не забывайте, что вы можете скорее использовать функцию "git add" по функции, делая только одну фиксацию:

  • после того, как все функции записаны или исправлены для заданной задачи.
  • или когда вы понимаете, что текущая функция слишком велика/сложна, чтобы быть частью коммита в ближайшее время: вы можете затем зафиксировать то, что сейчас находится на сцене ( "git добавлено" ), которое не включало бы вашу текущие изменения в рабочем каталоге.

Затем число коммитов может быть связано с назначением ветки:

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

Короче говоря, " публикация соображения" может в VCS D (как в "Распространенном" ) направлять вас на то, чтобы сделать необходимое количество коммитов для правильные причины.

Ответ 4

Чем больше вы совершаете, тем легче найти ошибки с git bisect

Ответ 5

Как только тесты пройдут или когда добавлена ​​/удалена/изменена единица функциональности.

Ответ 6

Это действительно зависит.

То, что я делаю, часто фиксируется локально, поскольку это звучит так, как будто вы делаете, но я только толкаю свои изменения, когда набираю несколько влиятельных.

Это гарантирует, что я сохраню свою работу, но также не загромождает репо для других пользователей.

Ответ 7

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

Ответ 8

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

Ответ 9

То, что вы делаете, звучит о праве на меня. Каждый раз, когда у вас есть рабочая настройка, на которую вы хотите вернуться, если вам что-то не хватает, это хорошее время для совершения. Если у вас хорошая настройка, где быстро и легко выполняются регрессионные тесты, я мог видеть это довольно часто. Для меня мне повезет сделать один в неделю.

Ответ 10

Я делаю довольно далеко друг от друга. git не предназначен для "резервного копирования" вашего кода, вы должны использовать tarball или dropbox или что-то, чтобы гарантировать, что вы не потеряете код.

Если вы не совершаете очень часто, вы можете лучше сказать, что следует делать в том, что совершает, и дает вам более плавную историю, чем 50 коммитов с

"oops", "damn", "забыли этот файл"

вы можете rebase, но если вы никогда не станете/не совершаете в первую очередь, вам не нужно отменять вашу работу.