HelpSophie
@HelpSophie

Как правильно коммитить?

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

Как правильно поступать, как не плодить такие плохие коммиты или как их потом удалять?
  • Вопрос задан
  • 4736 просмотров
Решения вопроса 1
delphinpro
@delphinpro
frontend developer
Делаем временную ветку temp1 и пушим туда все что угодно.
Потом, когда закончим пилить фичу, переключаемся обратно на master или dev и делаем
git merge --squash temp1
Все изменения перекочуют в master/dev, но не будут закоммичены.
Теперь можно делать обычный коммит с описанием фичи, все будет в одном коммите.
После всего удаляем временную ветку с ключом --force

Временную ветку лучше назвать как-то более понятно, чем temp1, если работаете не одна. feat-super-puper.
Ответ написан
Пригласить эксперта
Ответы на вопрос 5
@l4m3r
Не стоит относится к гиту как к священной корове. Ничего не надо удалять. Отправили кривое сообщение - фиг с ним.
Не надо писать "поработала на ноуте". Пишите в духе "Добавляю X в модуль Y (часть 1)".
Ответ написан
VladimirAndreev
@VladimirAndreev
php web dev
Как вариант - пушить во временный бранч.
А потом сделать мердж в основной бранч фичи и
git reset --mixed на последний нормальный коммит. И удалить временный. Тогда и следов не останется.

А если контора не против, можете вообще отдельный удалённый репозиторий для этих целей создать

А ещё можно посмотреть, как git хранит stash'ы, может, их можно копипастом переносить
Ответ написан
Комментировать
egor_nullptr
@egor_nullptr
Как правильно поступать, как не плодить такие плохие коммиты или как их потом удалять?


* пушим в одну ветку все плохие и хорошие коммиты
* когда работа над фичей закончена, делаем git reset на коммит до наших изменений
* коммитим все наши изменения в виде одного (или нескольких) коммита(ов)
* profit

При таком походе есть пара нюансов: пушить конечный коммит надо будет с форсом (--force), если кто-то вздумает смержить недоделанную ветку, то ничего хорошего это не принесёт.
Ответ написан
Комментировать
@Vitsliputsli
Делаете коммит с описание что сделали, что недоделали, начинаете коммит строкой "WIP: " (это стандартное сокращение означает "work in progress", многие системы игнорируют коммиты с таким началом описания).
После того как продолжите работу и сделаете логически завершенный коммит, то сделайте rebase и уберите этот коммит из истории (разумеется, если ветка это позволяет).
Ответ написан
Комментировать
@Suor
Синхронизируешь код с помощью дропбокса или чего-то аналогичного, коммитишь когда считаешь нужным.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы