Мы все делаем это, и я уверен, что ты тоже тоже. Вы знаете, быстрые коммиты, когда вы что-то тестируете, затем фиксируете опечатки, затем снова совершаете, нажмите, тестируйте и включите и включенные.
Я обычно делаю это, когда я работаю над развертыванием или кодом сборки, положительный, что это просто крошечное исправление, одна маленькая модификация и это все. Итак, я делаю бессмысленное сообщение, Push Test и см. Ошибка. Давайте назовем это Домохозяйство : Развитие грубой силы.
Теперь я остался с веткой, полной, ну смущает коммитарию, которые направляются прямо к запросу на потяну и обзор кода.
Тем не менее, у меня немного обманывают мою рукав, которая помогает мне толкать эти изменения, как этот инженер 10x в моей команде.
Используйте Git Squash. Кроме того, чтобы выглядеть умнее, вы можете сохранить историю филиала и гораздо более читаемой для других.
Гит-сквош
Сдача коммитов может быть сделано несколькими способами, где ваша конечная цель — переписать историю совершения и оставить только один коммит вместо нескольких бессмысленных. Вы можете выбирать историю сообщений Commit или переписать это, так же, как и другая возможность сообщить изменения, которые вы представляете.
Git Log — раньше
Лучший способ понять гидрокварку — смотреть на журнал Git. В этом примере у меня есть филиал особенности, которая имеет три коммита.
* 510b129 (HEAD -> docker-rmi) missing flag * cd62deb typo #2 * dba34d5 typo * 46e95a5 Listing local docker images * e30e77d (master) Starting the build process * 9409666 Adding the build script
GIT журнал после
После выполнения «сквоша» журнал GIT выглядит так:
* 617c65c (HEAD -> docker-rmi) Listing all the local docker images * 46e95a5 Listing local docker images * e30e77d (master) Starting the build process * 9409666 Adding the build script
Как мы вернулись вовремя!
Вместо того, что вместо всех «Typo» Commit Commit сообщений и отсутствует флаг, у нас теперь есть только одно сообщение, которое включает в себя все изменения, которые мы сделали.
Есть несколько способов Squash Commits, и я покажу вам два, которые охватывают различные случаи использования. В StackoverFlow есть прекрасная нить, если вы хотите увидеть больше методов.
Сквош на той же ветке
Когда вы хотите изменить историю филиала, раздавливая несколько коммуникаций, Git Сброс --soft
Команда может пригодиться.
Предупреждение — Убедитесь, что у вас не было незаменимых изменений. Либо совершайте, либо раскрывайте их перед выполнением команды сброса.
Если вы хотите выкрутить свои последние три коммита, запустите команду:
git reset --soft HEAD~3 && git commit
Также, если вы хотите, чтобы сквош на конкретный коммит:
git reset --soft 46e95a5 && git commit
Чтобы подтолкнуть ваши изменения, вы должны использовать флаг —Фос, так как вы изменили историю филиала.
git push --force
Опять же, для получения дополнительной информации, см. Ссылку выше в резьбу стоковой двери.
Сквош на слиянии
Если вы являетесь уверенным лицом и просто хотите сохранить ветку (или любой другой) филиал чистый, вы можете использовать Git Merge --squash
команда. Большая часть запроса на потяжке UIS позволяет вам также слиять сквошу.
git checkout master git merge --squash featurebranch
По умолчанию Commit включает в себя все оригинальные сообщения, но вы можете переписать его также. Ваша оригинальная ветка держит первоначальную историю, чтобы вы могли его ссылаться.
Сделайте это сейчас
Как и все GIT, зная о способе, добавляет другой инструмент в ваш ремень. Но опять же, всегда есть этот «страх» запущенных команд в первый раз на существующей кодовой базе. Так что идите вперед и создайте чистый Git Reppo и попробуйте эти методы в безопасной среде. Ваша рука будет меньше шансов, когда вы увидите, как он работает самостоятельно.
Хотите узнать больше? Перейти к моей странице регистрации и никогда не пропустите пост
Оригинал: «https://dev.to/yuvalo/hide-your-shameful-commits-with-git-squash-1c7l»