Как мне избежать внесения небольших изменений в git? - PullRequest
12 голосов
/ 13 июля 2010

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

Есть идеи?Спасибо

Ответы [ 3 ]

21 голосов
/ 13 июля 2010

Обновление: как указывали другие, не делайте перебазирования или перезаписи истории любого рода, если вы перешли на удаленный источник и поделились этим кодом с другими разработчиками. Краткий ответ: это опасно и рискованно!

Я бы порекомендовал проверить для этого команду rebase . Это именно то, что вы просите

Для этого нужно взять меньшие коммиты и объединить их в более крупные

Чтобы использовать это:

git rebase -i HEAD~5

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

pick 01d1124 Adding license
squash 6340aaa Moving license into its own file
squash ebfd367 Jekyll has become self-aware.
squash 30e0ccb Changed the tagline in the binary, too.

Это упакует предыдущие 3 коммита и поместит их все под тот, который вы пометили как pick. Затем вы можете изменить сообщение о коммите и т. Д.

Веселись

16 голосов
/ 13 июля 2010

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

Хорошая информация о внесении изменений в git коммитов содержится в руководстве пользователя Git и в блоге .

3 голосов
/ 13 июля 2010

Один из лучших способов решить эту проблему - использовать git difftool для запуска визуального инструмента, такого как xdiff или winmerge, для каждого измененного файла перед фиксацией.Это позволяет легко отменить незначительные изменения и поймать значительные изменения, которые вы забыли, что сделали и не готовы.Таким образом я ловлю изрядное количество ошибок.Например, отсутствующий или дополнительный HTML-тег может быть трудно обнаружить при просмотре кода, но его легко обнаружить при выполнении сравнения.

...