Se cere din ce in ce mai mult Git in linie de comanda, cateva din comenzi uzuale:
git clone branch_url
git commit
git push
Pentru update branch de lucru cu master sau develop:
git pull origin develop
Cand fac un merge ne-reusit folosesc reset head la un commit:
git reset --hard SOME-COMMIT
git push --force
Intreb fiindca Linkedin are un test pentru Git in linie de comanda si l-am picat la limita sa il trec, m-a pus pe ganduri sa invat mai bine Git in linie de comanda, cred ca iti poate da o intelegere mai profunda in lucrul cu branch-uri.
Eu mai folosesc in linie de comanda. Uneori comenzile mi se par mai explicite decat interfata pusa la dispozitie de ide. Confictele imi place sa le rezolv din ide
E bine să ai ceva noțiuni de CLI, dar în viața de zi cu zi ai foarte rar nevoie de mai mult decât oferă GUI. Funcționalități ce nu le poți face în vreun GUI (sau sunt foarte ascunse/neintuitive):
reflog - în git este mai greu decât pare să ștergi definitiv lucruri. Iar dacă ștergi (e.g. reset --hard), poți recupera destul de ușor;
ignorarea unui fișier care este deja în repo.
Evident, dacă interacționezi și cu servere remote (fără GUI), ar fi util să poți face un checkout, reset șamd
evident.
pana la urma scopul e duci taskul la final (updateul in repository).
mai depinde si de fluxul de lucru si de tehnologia folosita.
dar pentru cineva care lucreaza cu linux de multi ani… cli e de foarte multe ori varianta preferata.
Da ideea e ca daca iti tii branch-urile update probabilitatea de broken merge e mica, teoretic nici nu ar trebui sa ai broken merge, si GUI ajuta aici, dar cand ai branch foarte in urma e greu sa urmaresti toate modificarile.
Cum altfel te descurci cu rebase-uri și Feature branch-uri remote?
In alta ordine de idei, protip pentru developeri mai la început de drum / comozi / dinspre windows: bagati CLI cat mai mult! Git desigur, cum zice și OP. Dar și tool-urile de build, linterele, testarea, interacțiunea cu sistemele etc. Le demistifica și va da un boost de înțelegere a aplicațiilor masiv! Și o ziua de azi eu dau yarn compile sau gradle build de mana din CLI, chiar daca IntelliJ știe să facă toate astea ptr mine.
Folosim git numai in linie de comanda! Nu vad de ce ai folosi altceva decat command line. Si eventual gitlab/github pt hosting, in functie de proiecte.
Pentru ca e mai simplu sa vezi modificarile sau diff-urile?
Poate daca faci mereu doar git commmit/pull/push atunci e simplu din terminal, dar daca vrei sa cauti un commit de acum cateva luni si vrei sa faci un cherry pick doar la anumite linii din cod, cat te chinui in linia de comanda?
Cel mai bine, totul editat in cmd line (vim, nano, ee in functie de varianta de *nix), apoi git pt schimbari, iar un pipeline in gitlab iti garanteaza successul commit-ului sau nu (push in prod or not)