Будни разработчика
14.7K subscribers
1.17K photos
331 videos
7 files
2K links
Блог Lead JS-разработчика из Хельсинки
Автор: @bekharsky

По рекламе: https://telega.in/channels/htmlshit/card?r=GLOiHluU или https://t.me/it_adv

Чат: https://t.me/htmlshitchat

№5001017849, https://www.gosuslugi.ru/snet/679b74f8dad2d930d2eaa978
Download Telegram
#такое дня

Итак, что же произошло?

Жена изучает Wordpress и React. Вот вы знали, почему Gutenberg — конструктор блоков в Wordpress — так боготворят? Вот я раньше не знал, пока, собственно, жена в колледже не начала его изучать.

Если коротко, каждый блок в Gutenberg можно описать в React. А потом рендерить WYSIWYG в конструкторе и PHP-версию для сайта. Исконный SSR как он есть :) На самом деле, я был почти в восторге.

И для этого процесса имеется кодогенератор.

Он сгенерирует JSON-схему блока, стили и начальные скрипты для редактора и клиентской части сайта, package.json с нужными скриптами, PHP-обвязку, readme... В общем, с десяток файлов.

Но вы не за этим тут собрались, верно?

Итак, нагенерировали 9 блоков, три из них практически полностью закончили, остальные — оставили в виде кодгена. И попросила жена меня помочь уложить всё в git. Последить, что все сделано правильно.

Как показали события, нашла, конечно, кого просить.

Ну, первый раз чтоле:
git init
touch .gitignore
git add .
git status
...так, index.php же не нужен...
git reset --hard
echo "index.php" >> .gitignore
...блять

89 файлов исчезли, осталось лишь то, что было открыто в файлах.

Зачем я сказал сделать хард-ресет — я сам не очень понимаю, если честно. Даже не спрашивайте. Я привык работать инкрементально: и добавлять файлы с самого начала, и ветки на каждый чих и так далее. Потому ресет для меня был инструментом простой подчистки мусора.

Теперь-то понятно, что от этой привычки надо избавляться.

К счастью, в git ничего не пропадает бесследно. Есть возможность вытащить «подвисшие» файлы из индекса, пока не произошёл коммит. Как-то так:

git fsck --lost-found

Эта команда вытащит подвисшие файлы в директорию .git/lost-found/.

Вот только вытащит она их по хэшу. Названия будут утеряны. Ну и ещё — одинаковые файлы будут, очевидно, схлопнуты в один (ещё раз внимание на слово хэш).

К счастью, мы же помним, что у нас кодогенератор? Содержимое каждого из этих файлов явно говорит, к чему оно относится. Так что, вооружившись списком файлов, который мне ранее дала команда git status, я создал 89 пустых файлов с верными именами и пошёл копировать один за одним. Полчаса из жизни.

Но точно не впустую. Выводы сделаны. Учитесь пользоваться инструментами, котаны. Не полагайтесь на привычку.

Да, во многи редакторах присутствует концепция локальной истории, но тот же VS Code реагирует только на открытые файлы.

В общем, было весело. И немного стыдно, да.

P. S. удалять index.php из списка добавленных файлов надо было так:

git reset index.php

Или просто

git reset

...чтобы очистить список файлов к добавлению.

#git #wordpress #fail
16🫡13👍7🤩1