Mam coś do zapamiętania.

Powiedzmy, że już któryś raz chcę wycofać ostatni commit z lokalnego repo przy jednoczesnym zachowaniu wprowadzonych zmian (innymi słowy - przenieść zmiany ze statusu commited do staged). W tym przypadku po prostu wpisuję:

git reset --soft HEAD~1

Oczywiście - mógłbym za każdym razem użyć google. Zapamiętałem jednak to polecenie i mogę teraz bezpośrednio osiągnąć efekt - bez szukania sposobu. Zysk widzę tu nie tyle (a bardziej - nie tylko!) w czasie, jaki zajęłoby znalezienie tej prostej odpowiedzi, co w context switchingu.

Pojęcie context switching powinno być raczej jasne - w ramach rozszerzonej lektury proponuję te 2 linki:

  1. Ogólny, odnośnie produktywności
  2. Bezpośrednio związany z Oracle i komunikacją między silnikami SQL i PL/SQL

Zapamiętanie jednej komendy to nie problem. Jeśli jednak chcemy pamiętać kilka tysięcy takich jednostek wiedzy, to warto byłoby co jakiś czas je sobie przypomnieć. Temat użyteczności powtórek jest świetnie opisany w wielu artykułach. Zalinkuję tylko do jednego:

  1. O Piotrze Woźniaku (sic!), twórcy SuperMemo

W telegraficznym skrócie: najlepszy moim zdaniem soft do zarządzania bazą wiedzy (którą regularnie będziemy odświeżać za pomocą fiszek) to Anki.

  1. https://apps.ankiweb.net/index.html

Dowiedziałem się o nim kilka lat temu, czytając reddita, gdzie studenci medycyny polecali sobie najlepsze metody na naukę anatomii. Ostatecznie nie zostałem fizjoterapeutą ani lekarzem (choć kiedyś chciałem), więc zamieszczam link w kontekście IT:

  1. Janki method - o nauce programowania z pomocą Anki

Jestem przekonany, że dzięki zastosowaniu się do artykułu powyżej, wiele osób mogłoby poprawić swoją skuteczność. Anki pomogły mi m.in. w nauce angielskiego, rozmowie kwalifikacyjnej i przygotowaniu do egzaminu z chmury (GCP). Odrobina dyscypliny i z tych niepozornych kart można naprawdę wiele wycisnąć.

Przykładowa karta do polecenia git z z początku postu mogłaby wyglądać tak: anki_070.png


…Na koniec dodam tylko przykład z zastosowaniem git reset --soft HEAD~1

Tworzę nowy plik invisible.sql z 2 poleceniami w folderze anki i inicjuję repozytorium.

cd /c/repos
mkdir anki -v
cd anki
cat > invisible.sql << EOL
CREATE INDEX employees_name_idx ON employees(name) INVISIBLE;
ALTER SESSION SET OPTIMIZER_USE_INVISIBLE_INDEXES = true;
EOL
git init
git add .
git commit -a -m "Initial commit"

anki_055.png

Zmieniam flagę w wierszu #2 z true na false.

anki_060.png

git add .
git commit -a -m "Set OPTIMIZER_USE_INVISIBLE_INDEXES = false"
git reset --soft HEAD~1

…i finalnie otrzymuję

anki_065.png