Задать вопрос
@Mubat

Как работать с Git на нескольких компьютерах над одним коммитом?

У меня есть рабочий и домашний компьютер.
Иногда бывает так, что на работе работаешь над фичей/фиксом и не успеваешь закончить работу чтобы закоммитить. И после работы хотелось бы закончить работу над фичей/фиксом.
Но суть в том, что незаконченная часть не тянет на полноценный коммит. Не хотелось бы делать промежуточный коммит с рабочего компьютера чтобы не засорять историю. И при этом играться с перекидыванием изменений на флешку и на домашнем компьютере обратно выглядет не очень привлекательным.
Может быть кто-нибудь подскажет как можно выйти из такой ситуации, так сказать best practices.
  • Вопрос задан
  • 5026 просмотров
Подписаться 1 Оценить 2 комментария
Решения вопроса 1
@abcd0x00
И после работы хотелось бы закончить работу над фичей/фиксом.

Это ужасно, конечно, что ты работу делаешь в нерабочее время. Так можно стать трудоголиком (жизнь = работа) и получить выгорание (депрессию).

Если ты хочешь доделывать работу периодически, у тебя на диске (на флешке, например) должен быть склонированный проект. Его можно подключить к основному проекту как удалённый источник под каким-нибудь именем. Получится, будто он у тебя как бы на github'е, но он будет на флешке и ты сможешь туда заталкивать и оттуда скачивать, как с обычного удалённого репозитория.

А чтобы перекинуть незакомиченные изменения, используй diff-файл: делаешь git diff, но вывод направляешь в файл и потом этот файл можешь перекинуть в другой репозиторий, а потом сделать git apply с ним в другом репозитории и эти изменения появятся там тоже в незакомиченном виде.

И то, что ты пишешь, что у тебя один большой коммит, - так не должно быть. Должна быть ветка для какой-то фичи, в неё делается много маленьких коммитов, а потом эта ветка вливается без быстрого прохода (это когда коммит слияния делается в любом случае). И вот в этом коммите слияния пишется вся информация о фиче.

А сами коммиты в такой ветке друг от друга не должны зависеть (не всегда это возможно, конечно), чтобы при отмене одного изменения не нужно было отменять остальные.
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
GavriKos
@GavriKos
branch per feature подход вам поможет. Делаете бранч, в него комитаете хоть каждую строчку, потом мержите в мейн-бранч. Итог - мейн-бранч чистый.
Ответ написан
Комментировать
akzhan
@akzhan
коммиты делайте сколько угодно.

потом используйте "git rebase -i номеркоммита, от которого почковались" для слияния всех коммитов в один или сколько нужно (все лишнее пропадет).
Ответ написан
Комментировать
LightAlloy
@LightAlloy
Ruby developer
Я так поняла речь идёт именно о том, чтобы не делать промежуточный коммит в т.ч. и в ветке фичи.
Если совсем не хочется коммитить, придётся как-то перемещать код самостоятельно - через внешний носитель или дропбокс какой-нибудь.
Также надо не забывать о рекомендациях коммитить часто (например, https://sethrobertson.github.io/GitBestPractices/#...
Возможно, стоит разбить фичу на несколько коммитов.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы