Нужно ли делать коммит в Git, когда мне делать это и как я могу вернуться к старым версиям? - PullRequest
2 голосов
/ 02 августа 2011

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

  1. Правда ли, что версия сохраняется в Git, только если вы выполнили оператор commit? По какой-то причине я думал, что каждый раз, когда вы вносите какие-либо изменения в свой проект, они автоматически добавляются в качестве версии в ваш репозиторий, чтобы вы могли вернуться к ним.

  2. Итак, когда вы должны выполнить коммит? Только когда вы думаете, что добились значительного прогресса?

  3. Как вы на самом деле вернетесь к предыдущей версии в Git? то есть какая команда?

Ответы [ 4 ]

3 голосов
/ 02 августа 2011

1. С Git (то же самое с SVN, Bazzar или другими) , вам нужно зафиксировать , чтобы сохранить версию - таким образомgit отслеживает только те версии, которые вы считаете достаточно хорошими 1008 *.

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

3. Вы должны взглянуть на следующую страницу: Отмена в Git - Сброс, извлечение и возврат

1 голос
/ 02 августа 2011
  1. Да. Но читайте дальше ...

  2. Специально для git рекомендуется делать коммиты каждый раз, когда вы думаете, что сделали одно автономное логическое изменение. Так что это должно происходить довольно часто - обычно совершается между 5-30 минутами. Например, просто клонируйте репозиторий git для git и посмотрите на работу некоторых более опытных людей.

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

  • "Новая ветвь для функции frobnication"
  • "commit: foos теперь может быть заблокирован"
  • "commit: baz теперь проверяет, не заблокированы ли foos, с которыми он работает"
  • "commit: bar теперь может фобниковать foos"
  • "commit: тесты на обморожение"

Это делает инструменты, оглядывающиеся на источник, гораздо более полезными для отладки. Вам, безусловно, следует избегать одиночных коммитов, которые изменяют более 100 строк - они превращают работу, которую вы сделали с источником, в непрозрачные блоки, которые трудно понять.

1 голос
/ 02 августа 2011
  1. Да, только когда вы запускаете коммит.
  2. Вы должны совершать так часто, как вам нужно \ хотите. Всякий раз, когда вы заканчиваете что-то полезное, перед тем, как вы что-то измените, ваше беспокойство может не сработать, или вы захотите убедиться, что можете вернуться к нему. Передача этих изменений другим - это другое дело. Только давите на вещи, которые, по крайней мере, в основном работают и стабильны.
  3. Если у вас есть выбор, и вам нужно отслеживать версию на основе файла , вы можете использовать Subversion (SVN). В противном случае используйте git checkout [commit-ref] [filename]. [commit-ref] - это хэш-значение нужной версии.
1 голос
/ 02 августа 2011
  1. Да, вы должны взять на себя обязательство сохранить изменения.Это верно для всех VCS, но не только для Git.
  2. Вы должны выполнять коммит, когда у вас есть версия вашего кода, которая собирается и запускается.Это должно быть то, что вы хотели бы иметь возможность отменить.Вряд ли это так при каждом сохранении.Я нахожу, что обычно совершаю от 4 до 12 раз в день, но это может быть чаще, если я делаю много небольших улучшений.
...