Я задаюсь вопросом, как я мог избежать фиксации в действительно небольших изменениях кода. Например, иногда я пропускаю пространство между параметрами или таким крошечным форматированием кода. Причина я спрашиваю это, состоит в том, потому что позже я должен продвинуть свои фиксации в удаленный репозиторий, и я не хочу включать те небольшие изменения.
Какие-либо идеи?Спасибо
Обновление: Как отмечали другие, не делайте никаких перебазировок или переписывания истории любого рода, если вы переместили код на удаленный источник и поделились им с другими разработчиками. Короткий ответ: Это опасно и рискованно!
Я бы порекомендовал проверить команду 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
. Затем вы можете изменить сообщение о коммите и т.д.
Веселитесь
Один из лучших способов решить эту проблему - использовать git difftool для запуска визуального инструмента, такого как xdiff или winmerge, для каждого измененного файла перед фиксацией. Это позволяет легко отменить незначительные изменения и выявить существенные изменения, которые вы забыли о внесении и не готовы. Таким образом я ловлю изрядное количество ошибок. Например, отсутствующий или лишний тег html может быть трудно обнаружить, когда вы смотрите на код, но его легко обнаружить, когда вы делаете различие.
Единственный способ внести изменения - это зафиксировать. Однако вы можете изменить предыдущую фиксацию , чтобы включить новое изменение, если хотите. Это может быть лучшим решением, если вы еще не отправили предыдущую фиксацию в удаленный репозиторий.
Хорошая информация об изменении коммитов git содержится в руководстве пользователя Git и в сообщении блога .