Десь рік займався спортивним ножовим боєм. Якось за тиждень до Нового року 2019 ми, разом із нашим сенсеєм, зібралися невеликою теплою компанією вдома в одного з наших хлопців.
"Передноворічні посиденькі ножовиків"
#knives
"Передноворічні посиденькі ножовиків"
#knives
"Взаємодія з системою контролю версій. Інструкція для новачків".
Зображення взято десь з Хабру. Люблю цю картинку.
#git
Зображення взято десь з Хабру. Люблю цю картинку.
#git
Доречі, про системи контролю версій.
Вчора вперше за п'ять років знайомства з git мені згодився reflog. По роботі.
Картіна маслом.
Запушив коміт з двома новими файлами у свою feature-гілку. Дивлюся - а один з них мені і не потрібен. Видалив його, а потім, щоб не створювати нового коміту та не залишати непотрібний файл в історії, роблю
1.
Отож. Не той.
Маємо: В локальномі репозиторії файла нема (бо amend). У віддаленому - теж (бо force push). А у файлі був SQL строчок на п'ятнадцять, що шліфувався зо дві години.
Перша секунда після: йо...
Друга секунда: о, в мене ж є reflog, я про нього і на мітапі розповідав.
1.
3.
4. маю "втрачений" файл в локальному репозиторії
5. ???
6. профіт!
Мораль.
Git ніколи сам по собі не видаляє дані. І навіть після переписування історії можна знайти "втрачене" (але поки gc на репозиторії ніхто не запускав).
#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
