Size: a a a

Git — русскоговорящее сообщество

2021 January 13

꧁岡

꧁倫太郎 岡部꧂... in Git — русскоговорящее сообщество
By @Rostislaved

Rostislav Teryaev:
@ponomarevv @trueflywood
Спасибо за ответы, но все же это больше про то, КАК делать коммиты. А не про то, КОГДА их делать.
Я не могу понять, какие части работы надо объединять в коммиты. Я могу весь проект 1м коммитом сделать, но это не здорово, а как его разбить на мелкие коммиты не понимаю. Может это из-за специфики. Я пишу микросервисы и они правда маленькие.

Небольшой пример.
Если в сервисе идет работа даже с двумя базами, я не пишу сперва весь код для одной базы, чтобы можно было сделать коммит вроде: "Реализовать работу с первой бд", а потом для второй базы, чтобы был коммит "Реализовать работу со второй бд". Я их пишу параллельно, например, потому, что подключение к ним - практически один и тот же код, поэтому легко его сразу скопировать. В таком случае можно было бы сделать коммит: "Реализовал работу с двумя базами", но это как-то не здорово, т.к. в одном комите уже не одно изменение, а несколько.
Более того, я первую версию микросервиса всю пишу вот так вот параллельно, базы, контроллеры, мейн и т.д. Когда-то просто напишу вызов функции, а реализацию оставлю на потом, чтобы оставаться на том же уровне абстракции и вроде того.

После того, как я напишу первый финальный вариант и сервис пойдет в прод, то спустя какое-то время в нем может надо что-то изменить или добавить. И вот только в этом случае получается делать маленькие коммиты, которые будут например:
Исправить опечатку в readme
Обновить хост бд

Собственно, что я хочу понять - это только у меня вот так и проблема во мне?) Или может все в основе своей работают уже с существующим кодом, куда только вносятся исправления и добавляются фичи, поэтому этапа "до 1й версии в проде" у них нет?
источник

RT

Rostislav Teryaev in Git — русскоговорящее сообщество
Спасибо большое!
источник

CN

Calle Nord in Git — русскоговорящее сообщество
Calle Nord
Подскажите чем отличается git push и git push -u
Пожалуйста
источник

CN

Calle Nord in Git — русскоговорящее сообщество
git push
git push -u

В чем разница? Подскажите прошу
источник

a

allpeg in Git — русскоговорящее сообщество
꧁倫太郎 岡部꧂
By @Rostislaved

Rostislav Teryaev:
@ponomarevv @trueflywood
Спасибо за ответы, но все же это больше про то, КАК делать коммиты. А не про то, КОГДА их делать.
Я не могу понять, какие части работы надо объединять в коммиты. Я могу весь проект 1м коммитом сделать, но это не здорово, а как его разбить на мелкие коммиты не понимаю. Может это из-за специфики. Я пишу микросервисы и они правда маленькие.

Небольшой пример.
Если в сервисе идет работа даже с двумя базами, я не пишу сперва весь код для одной базы, чтобы можно было сделать коммит вроде: "Реализовать работу с первой бд", а потом для второй базы, чтобы был коммит "Реализовать работу со второй бд". Я их пишу параллельно, например, потому, что подключение к ним - практически один и тот же код, поэтому легко его сразу скопировать. В таком случае можно было бы сделать коммит: "Реализовал работу с двумя базами", но это как-то не здорово, т.к. в одном комите уже не одно изменение, а несколько.
Более того, я первую версию микросервиса всю пишу вот так вот параллельно, базы, контроллеры, мейн и т.д. Когда-то просто напишу вызов функции, а реализацию оставлю на потом, чтобы оставаться на том же уровне абстракции и вроде того.

После того, как я напишу первый финальный вариант и сервис пойдет в прод, то спустя какое-то время в нем может надо что-то изменить или добавить. И вот только в этом случае получается делать маленькие коммиты, которые будут например:
Исправить опечатку в readme
Обновить хост бд

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

꧁岡

꧁倫太郎 岡部꧂... in Git — русскоговорящее сообщество
allpeg
та же проблема у меня.
я если возможно стараюсь разбить коммит на несколько логических, иногда даже откатывая часть файла чтобы логичней история была. если невозможно так сделать (логически не разорвать) то не парюсь и делаю один большой коммит
ненад меня пингать(
источник

RT

Rostislav Teryaev in Git — русскоговорящее сообщество
allpeg
та же проблема у меня.
я если возможно стараюсь разбить коммит на несколько логических, иногда даже откатывая часть файла чтобы логичней история была. если невозможно так сделать (логически не разорвать) то не парюсь и делаю один большой коммит
о, ну я хотя бы не один с таким кейсом.
Спасибо за отклик
источник

VB

Vitalii Bieliavtsev in Git — русскоговорящее сообщество
Rostislav Teryaev
Спасибо большое!
Обычно, в идеале, один коммит = одна задача. Разбить можно как угодно: пофиксил баг - коммит, добавил комментари - коммит. Если у тебя каждый микросервис в отдельной репе - ну да, сего там коммитить. Но и тут бывает - что-то попоавить, переменную добавить и т.д. Каждое твое действие - коммит. Ты можешь коммитить хоть каждый новый символ - но голова ж у тебя не только чтоб в неё есть. Разбей свою работу на логические этапы.
источник

VB

Vitalii Bieliavtsev in Git — русскоговорящее сообщество
Если твои микросервисы все в одной репе - то же самое - правка любого из них - коммит. А что ты там поправил - не важно
источник

VB

Vitalii Bieliavtsev in Git — русскоговорящее сообщество
Можешь, конечно, вообще коммитить раз в год. По праздникам. Дело сугубо твоё.
источник

VB

Vitalii Bieliavtsev in Git — русскоговорящее сообщество
Добавление фич,  правка бага, косметическая правка. Что угодно
источник

RT

Rostislav Teryaev in Git — русскоговорящее сообщество
Vitalii Bieliavtsev
Обычно, в идеале, один коммит = одна задача. Разбить можно как угодно: пофиксил баг - коммит, добавил комментари - коммит. Если у тебя каждый микросервис в отдельной репе - ну да, сего там коммитить. Но и тут бывает - что-то попоавить, переменную добавить и т.д. Каждое твое действие - коммит. Ты можешь коммитить хоть каждый новый символ - но голова ж у тебя не только чтоб в неё есть. Разбей свою работу на логические этапы.
Хочется чтобы гит был не только потому, что "так принято", а чтобы также мне приносил максимальную пользу.
Просто пока не вижу пользы коммитить каждый чих, отсюда наверное и вопросы мои.
Имхо коммиты нужны, чтобы была возможность откатываться к ним, но я не вижу как-то ситуаций, где бы я откатывался.
источник

VB

Vitalii Bieliavtsev in Git — русскоговорящее сообщество
Прочитай в интернете что нибудь на тему "зачем нужны системы контроля версий". Твой вопрос не про Гит вообще
источник

A

Alex in Git — русскоговорящее сообщество
Rostislav Teryaev
Хочется чтобы гит был не только потому, что "так принято", а чтобы также мне приносил максимальную пользу.
Просто пока не вижу пользы коммитить каждый чих, отсюда наверное и вопросы мои.
Имхо коммиты нужны, чтобы была возможность откатываться к ним, но я не вижу как-то ситуаций, где бы я откатывался.
Нет, не обязательно, не только. Коммиты нужны в первую очередь чтобы хранить историю изменений (и пояснения к этим изменениям в виде сообщений к коммитам)
источник

VB

Vitalii Bieliavtsev in Git — русскоговорящее сообщество
Основное назначение - хранение истории изменений, параллельная разработка, ну и для меня лично - дополнительный бэкап моей работы в облаке.
источник

RT

Rostislav Teryaev in Git — русскоговорящее сообщество
параллельная разработка - это ок. конечно
бэкап моей работы в облаке - тоже ок.
хранение истории изменений - вот тут вопрос.
У меня в репозитории в файле changelog все изменения прописываются. Да, может это не так подробно, как можно коммитами, но все же.
Выходит 2 способа для выполнения одной задачи. Может поэтому я и не вижу смысла в роли гита для ведения истории? Ну т.к. у меня это по сути changelog выполняет.
PS  я знаю, как принято работать с гитом - и так и делаю, но в некоторых действиях не вижу ситуаций, где бы они могли пригодиться, поэтому и спрашиваю. Просто пытаюсь найти ту проблему, которая решается в данной ситуации им.
источник

RT

Rostislav Teryaev in Git — русскоговорящее сообщество
кроме как просто "так принято"
источник

VB

Vitalii Bieliavtsev in Git — русскоговорящее сообщество
Ты не правильно понимаешь "хранение истории". Ты можешь сравнить код твой текущей версии с той, что ты разрабатывал год назад. Ты выпилил какую-то фичу. Выпилил начисто, в десятке файлов. Случилось это по года тому. Ты внес кучу изменений в код, и тут тебе понадобилось эту фичу вернуть. Ты уже не помнишь - что именно и в каких файлах было. СКВ позволяют тебе сравнить код До выпила и сейчас. Вернуть твой нулевой функционал за минуты.
источник

VB

Vitalii Bieliavtsev in Git — русскоговорящее сообщество
А в changelog ты фиксируешь изменения того, к чему твоя работа привела в результате правки кода.
источник

RT

Rostislav Teryaev in Git — русскоговорящее сообщество
хм, ну да. Тут это было бы полезно, согласен.
Не возникало просто такой конкретной ситуации
источник