IT_HUMAN Telegram 863
Git - это опасно

У меня когда-то давно уже выходил пост с заголовком IT - это опасно.

Хочу вернуться к этой теме, так как буквально неделю назад снова наступили на те же грабли. Ещё в августе я фиксила некоторые баги в нашем проекте на работе. В ноябре обнаружила, что всё, что я чинила - снова сломано, и баги каким-то чудом "вернулись" в проект. Стала разбираться. Выяснилось, что один коллега, когда заливал свои изменения в проект, каким-то образом в гите перезатёр все мои изменения, и вернул в код старую версию, которая была ещё до августа. Причем, коллега не джун и не новичок. Но гит - инструмент мощный и умеет многое, поэтому, используя его, нужно всегда хорошо понимать, что ты делаешь. Действуя наобум, наверняка что-то сломаешь.

Для тех, кому слово "гит" и всё, что написано ниже ни о чем не говорит - почитайте мои вводные посты к гиту - раз и два.

Что же у нас пошло не так? Бывалые люди говорят - "так нельзя же пушить напрямую в мастер". Но в том-то и смех, что напрямую в мастер никто не пушил, всё как положено - через пул-реквесты, и через код-ревью. Но когда коллега мержил свой пул-реквест, возникли конфликты - часть изменений в мастере уже была новее чем та версия, от которой он изначально создавал свою ветку. Он стал решать конфликты вручную, то есть выбирать - какие куски кода взять из более новой версии мастера, а какие оставить в старом виде. И почему-то кучу мест вернул к старой версии, вместо того, чтобы подтянуть новые изменения.

В довершение - все изменения, которые он добавлял в проект от себя касались только форматирования кода - он его прогнал через линтеры, чтобы код выглядел красивее. Никакой логики в проекте менять не планировал. То есть ради приведения кода к единому стилю, был поломан работающий код и зачем-то откачен к более ранней багованной версии. Случайно, конечно.

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

Так что просто будьте осторожнее с гитом, и дважды подумайте и перепроверьте все изменения перед тем, как что-то вливать в основную ветку проекта. Не поломали ли вы там что-то? Не откатили ли изменения, внесённые другими разработчиками? Я не ожидала, что такие детские ошибки могут совершать не только новички - но вот, бывает же.



tgoop.com/it_human/863
Create:
Last Update:

Git - это опасно

У меня когда-то давно уже выходил пост с заголовком IT - это опасно.

Хочу вернуться к этой теме, так как буквально неделю назад снова наступили на те же грабли. Ещё в августе я фиксила некоторые баги в нашем проекте на работе. В ноябре обнаружила, что всё, что я чинила - снова сломано, и баги каким-то чудом "вернулись" в проект. Стала разбираться. Выяснилось, что один коллега, когда заливал свои изменения в проект, каким-то образом в гите перезатёр все мои изменения, и вернул в код старую версию, которая была ещё до августа. Причем, коллега не джун и не новичок. Но гит - инструмент мощный и умеет многое, поэтому, используя его, нужно всегда хорошо понимать, что ты делаешь. Действуя наобум, наверняка что-то сломаешь.

Для тех, кому слово "гит" и всё, что написано ниже ни о чем не говорит - почитайте мои вводные посты к гиту - раз и два.

Что же у нас пошло не так? Бывалые люди говорят - "так нельзя же пушить напрямую в мастер". Но в том-то и смех, что напрямую в мастер никто не пушил, всё как положено - через пул-реквесты, и через код-ревью. Но когда коллега мержил свой пул-реквест, возникли конфликты - часть изменений в мастере уже была новее чем та версия, от которой он изначально создавал свою ветку. Он стал решать конфликты вручную, то есть выбирать - какие куски кода взять из более новой версии мастера, а какие оставить в старом виде. И почему-то кучу мест вернул к старой версии, вместо того, чтобы подтянуть новые изменения.

В довершение - все изменения, которые он добавлял в проект от себя касались только форматирования кода - он его прогнал через линтеры, чтобы код выглядел красивее. Никакой логики в проекте менять не планировал. То есть ради приведения кода к единому стилю, был поломан работающий код и зачем-то откачен к более ранней багованной версии. Случайно, конечно.

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

Так что просто будьте осторожнее с гитом, и дважды подумайте и перепроверьте все изменения перед тем, как что-то вливать в основную ветку проекта. Не поломали ли вы там что-то? Не откатили ли изменения, внесённые другими разработчиками? Я не ожидала, что такие детские ошибки могут совершать не только новички - но вот, бывает же.

BY Программирование для гуманитариев


Share with your friend now:
tgoop.com/it_human/863

View MORE
Open in Telegram


Telegram News

Date: |

Just as the Bitcoin turmoil continues, crypto traders have taken to Telegram to voice their feelings. Crypto investors can reduce their anxiety about losses by joining the “Bear Market Screaming Therapy Group” on Telegram. As the broader market downturn continues, yelling online has become the crypto trader’s latest coping mechanism after the rise of Goblintown Ethereum NFTs at the end of May and beginning of June, where holders made incoherent groaning sounds and role-played as urine-loving goblin creatures in late-night Twitter Spaces. Telegram has announced a number of measures aiming to tackle the spread of disinformation through its platform in Brazil. These features are part of an agreement between the platform and the country's authorities ahead of the elections in October. Clear With the administration mulling over limiting access to doxxing groups, a prominent Telegram doxxing group apparently went on a "revenge spree."
from us


Telegram Программирование для гуманитариев
FROM American