GIT commit NPE
95 subscribers
298 photos
5 videos
36 links
Кодинг, linux, git, SQL, regex, board games, ножі, треш-індастріал.
Download Telegram
Channel created
Channel photo updated
Мій другий EDC-ніж.
Blade Brothers (Харків), "Оркнейський пазур"
#knives #places
Ці хлопці допомагають мені працювати на карантині
Ті, що творять долю
#boardGames
Десь рік займався спортивним ножовим боєм. Якось за тиждень до Нового року 2019 ми, разом із нашим сенсеєм, зібралися невеликою теплою компанією вдома в одного з наших хлопців.
"Передноворічні посиденькі ножовиків"
#knives
А ви знали, що регекспи можуть бути дуже веселими?

^([^^])^ або (?:\?+?)?(?=\?)

#regex
"Взаємодія з системою контролю версій. Інструкція для новачків".
Зображення взято десь з Хабру. Люблю цю картинку.
#git
Доречі, про системи контролю версій.
Вчора вперше за п'ять років знайомства з git мені згодився reflog. По роботі.

Картіна маслом.
Запушив коміт з двома новими файлами у свою feature-гілку. Дивлюся - а один з них мені і не потрібен. Видалив його, а потім, щоб не створювати нового коміту та не залишати непотрібний файл в історії, роблю
1. git commit --amend
2. git push --force origin my-feature

Здогадайтеся, чи той файл я видалив?..
Отож. Не той.
Маємо: В локальномі репозиторії файла нема (бо amend). У віддаленому - теж (бо force push). А у файлі був SQL строчок на п'ятнадцять, що шліфувався зо дві години.
Перша секунда після: йо...
Друга секунда: о, в мене ж є reflog, я про нього і на мітапі розповідав.

1. git reflog
2. знаходжу хеш того коміту, в якому був потрібний файл
3. git checkout хешКоміту -- шлях/до/файлу
(тільки не загубіть пробіли до і після двох дефісів)
4. маю "втрачений" файл в локальному репозиторії
5. ???
6. профіт!

Мораль.
Git ніколи сам по собі не видаляє дані. І навіть після переписування історії можна знайти "втрачене" (але поки gc на репозиторії ніхто не запускав).

#git