Kako rade Git grane (branches)

Kako rade Git grane (branches)

offline
  • Pridružio: 11 Okt 2014
  • Poruke: 358

Pozdrav, možete li mi objasniti kako ovo funkcionište?
Prvo sam napravio novi repozitorij na GitHub.
Nakon toga sam uradio
git init git branch -m main git remote add https://github.com/username/project.git git add . git commit -m "first commit" ... git push -u origin main
I to je postavljeno.
Nakon toga sam išao
git branch dev
I sada sam u dev grani, izmenio sam kod i uradio add i commit (u dev grani).

Meni nije jasno kako da pomoću komandle linije (CMD) vratim onaj kod koji je u main grani da bude u dev grani? To se često dešava, napravi se greška, eh kako se onda vratiti nazad?

Jedno rješenje je otići na GitHub i kopirati ručno kod? Ali šta da nema GitHub-a i da nisam to koristio. Kako bih vratio stari kod?

Da li se to vraća nazad iz main grane, ili se vraća iz remote depozitorija? Pokušavao sam sa git pull ali nisam uspeo.

Možete li mi ovo pojasniti? Bio bih Vam mnogo zahvalan.



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Milan
  • Pridružio: 17 Dec 2007
  • Poruke: 14811
  • Gde živiš: Niš

Evo linka, pa baci pogled: https://git-scm.com/docs/git-reset
A u detalje možemo kasnije ako treba.

I jedan koristan alat za vežbu: https://learngitbranching.js.org/



offline
  • Pridružio: 11 Okt 2014
  • Poruke: 358

Hvala puno Smile

Ne znam da li sam uspeo vratiti nazad u git bash CMD, ali konkretno index.js fajl je ostao isti.

Dok nije bilo dev grane ovako je izgledao index.js

// main branch

To sam postavio na github

onda sam dodao otišao u dev branch i dodao još jednu liniju koda "dev wrote"

// main branch // dev wrote

git reset main --merge nije uradilo ono što sam htio. index.js je ostao isti.

Možete li mi konkretno napisati koja komanda bi vratila također i index.js na staro u dev branch?

offline
  • Milan
  • Pridružio: 17 Dec 2007
  • Poruke: 14811
  • Gde živiš: Niš

Ima bar 3-4 različita načina da se postigne to što želiš, ali svaki od načina ima neku svoju specifičnost, tako da uvek zavisi od onoga šta tačno želiš da postigneš.

Zbog toga ti predlažem da ipak provežbaš to koristeći link iznad, pre nego dođeš do problema.

Recimo git reset --hard HEAD~1 će da obriše poslednji commit sa tekuće grane, kao i da odbaci sve promene iz tog commit-a.

Zatim, git reset --soft HEAD~2 će da obriše poslednja dva komita sa grane, ali će promene iz ta dva commit-a da ostavi lokalno, tako da možeš da vidiš diff i da ih opet commit-uješ. Ili možeš da uradiš git reset --hard i tako odbaciš sve te promene sa working tree-a.

Onda možeš da iskoristiš git revert da revert-uješ bilo koji commit, ali će ta komanda da napravi novi commit sa promenama takvim da poništavaju promene iz commit-a koji se revert-uje.

Na kraju, za ovaj tvoj specifičan slučaj, uvek možeš da skočiš nazad na main, obrišeš problematičnu granu i zatim napraviš novu istoimenu od main grane.

A inače, "git branch dev" će samo da napravi dev granu od tekuće grane (koja god ona bila), ali moraš zatim da uradiš git checkout da se prebaciš na tu granu.

offline
  • Pridružio: 11 Okt 2014
  • Poruke: 358

Hvala puno Smile

Ko je trenutno na forumu
 

Ukupno su 786 korisnika na forumu :: 54 registrovanih, 7 sakrivenih i 725 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: A.R.Chafee.Jr., Alexandar-1973, amaterSRB, babaroga, Bobrock1, bojank, Boris90, cavatina, cenejac111, CikaKURE, comi_pfc, darionis, Dogma21, DPera, dragoljub11987, dulleo, flash12, FOX, Helket, ivan1973, kalens021, kolle.the.kid, krkalon, Kubovac, kybonacci, ljuba, mercedesamg, Metanoja, Mikisha, Milenaaa, Milometer, Miskohd, mnn2, MrNo, pein, procesor, rasok, rovac, S2M, shone34, sokars, Srle993, stegonosa, Stoilkovic, vaso1, vathra, vladulns, voja64, VP6919, x9, yrraf, Zoca, šumar bk2, 125