Cum modifici mesajele de commit ale unor commit-uri Git din trecut

1. Cum schimbi mesajul de commit al ultimului commit

În următorul mod poți preciza noul mesaj de commit în linia de comandă:
git commit –amend -m "Mesaj nou"
În următorul mod se deschide un editor (de exemplu Vim) pentru editarea mesajului de commit anterior:
git commit –amend -e 
2. Cum schimbi mesajele de commit ale unor commit-uri din trecut (unul sau mai multe)

Această metodă funcționează doar dacă nu s-a făcut push la commit-urile respective sau dacă este vorba doar despre un depozit git local fără remote-uri.
git rebase -i X
unde X este ID-ul commit-ului aflat în cronologia commit-urilor chiar înainte de primul commit al cărui mesaj vrei să îl schimbi, și care se poate afla executând:
git log
În loc de ID-ul commit-ului poate fi (și deseori e mai folositor) un reper de tipul HEAD, HEAD~1 (commit-ul dinaintea ultimului commit), HEAD~2 (commit-ul dinaintea penultimului commit) etc.

Această comandă (rebase) va deschide editorul de text configurat pentru asta (de exemplu Vim) cu o listă de commit-uri, câte unul pe fiecare rând, și la începutul fiecărui rând va fi precizată comanda „pick” care înseamnă că acel commit nu va dispărea în urma rebase-ului.



Commit-urilor cărora doriți să le schimbați mesajul de commit schimbați-le comanda „pick” în „reword”, salvați fișierul și ieșiți din editor.



După ieșirea din editor, pentru fiecare commit la care s-a setat comanda „reword” se va deschide iar editorul pe rând cu vechiul mesaj de commit și aveți posibilitatea de a scrie un alt mesaj de commit sau să îl modificați pe cel vechi.

E important de menționat că rebase-ul va schimba ID-ul commit-urilor modificate deci trebuie făcut cu grijă când commit-urile se află și pe un server, deci nu sunt doar locale.

Dacă aveți întrebări sau sugestii, vă rog să scrieți comentarii mai jos.

Introducere în programul de editare de text Vim

Puteți citi mai multe despre acest program în articolul Wikipedia în limba română despre vim (sau via Wikiwand) sau în cel în limba engleză (sau via Wikiwand).



Pentru mine, Vim este folositor din următoarele motive:
- este foarte (ușor) extensibil și după ce te familiarizezi cu comenzile (și poate chiar începi să îți faci tu propriile comenzi!) devii foarte productiv;
- poate fi folosit direct din terminal pe sistemele de operare Linux (de exemplu, Ubuntu în cazul meu) ceea ce permite un flux de lucru frumos și productiv.



Pe Ubuntu, Vim se poate instala executând în terminal:
sudo apt-get install vim vim-gtk
(Am inclus și instalarea pachetului vim-gtk în comandă deoarece acest pachet permite utilizarea clipboard-ului cu comenzile "+y, "+p, "+d.)

Pentru Windows există un program de instalare automat, care poate fi descărcat aici și care creează o scurtătură în meniul Start.

Pe Linux, programul Vim se pornește rulând din terminal comanda „vim”. Pentru a deschide un fișier se rulează comanda „vim [cale_fișier]” unde „cale_fișier” este o cale relativă sau absolută către fișierul pe care doriți să îl editați. Recomand mult comanda „vimtutor” care oferă o introducere simplă și practică în limba engleză a comenzilor de bază pentru utilizarea Vim.



După deschiderea unui fișier în Vim, Vim are mai multe moduri de funcționare (sau de editare) printre care și:
- modul normal - în care se execută comenzi de editare pentru modul normal (în general mai simple decât cele pentru modul linie de comandă), acesta este modul în care intră Vim automat la pornire;
- modul de inserare - în care se introduc caractere, pentru trecerea în acest mod din modul normal se introduce comanda „i” (pur și simplu se apasă tasta „i”);
- modul de înlocuire - la fel ca modul de inserare dar caracterele introduse înlocuiesc caracterele deja existente pe pozițiile cursorului, pentru intrarea în acest mod din modul normal se apasă combinația de taste Shift+R (altfel spus, se apasă simultan tastele Shift și R, care împreună formează caracterul „R” mare);
- modul linie de comandă - în care se introduc comenzi mai complexe care încep cu caracterul „:”, pentru a intra în acest mod pornind din modul normal, se apasă „:”;
- modul vizual - în care se lucrează cu secțiuni din fișier selectate în mod vizual, pentru a intra în acest mod din modul normal se introduce comanda „v” pentru selectarea caracter cu caracter sau „V” pentru selectarea rând cu rând.


După ce veți lucra cu Vim mai mult și vă veți familiariza cu el, veți realiza că fișierul „.vimrc” este inima lui Vim. Puteți vedea fișierul meu „.vimrc” aici. Sper să vă fie de ajutor. În viitor sper să scriu un articol numai despre fișierul (meu sau nu doar al meu ci în general) „.vimrc”.


Dacă aveți curiozități sau întrebări legate de Vim, vă este de mare ajutor cunoașterea limbii engleze și site-uri precum acesta unde puteți pune întrebări, da răspunsuri, câștiga reputație, totul în legătură cu Vim (și Vi).



Va urma.

Dacă aveți întrebări sau sugestii, vă rog să scrieți comentarii mai jos.