JureMB / BazaRegat

MIT License
0 stars 1 forks source link

Ogromen commit #4

Closed jaanos closed 6 years ago

jaanos commented 6 years ago

Vidim, da je v zadnjem commitu (059630d) na repozitorij šlo celotno virtualno okolje, kar pa seveda tja ne sodi. Da bi ga @zalazni (ali morda @nocmatic?) pobrisala iz repozitorija, ne da bi pobrisala virtualno okolje pri sebi, bo najlažje doseči iz ukazne vrstice (npr. Git Bash) - postaviti se bo treba v vrhnjo mapo repozitorija:

git rm -r --cached flask/zalaenv/

Da okolje ne bo šlo spet na repozitorij, bo treba dodati še ustrezno vrstico v .gitignore, npr. flask/zalaenv.

Če @JureMB in @mpuh tega commita še nimata pri sebi, bo morda najlažje, da se zadnji commit nadomesti z novim, ki ne vsebuje neželenih datotek (tega se načeloma ne počne, v takih primerih pa pride prav tudi ta možnost). Potem lahko @zalazni narediš

git add .gitignore
git commit --amend --no-edit    # zadnji commit nadomesti z novim
git push -f                     # "force push" - commit na vrhu se zamenja z novim, tudi če ne gre za njegovo nadaljevanje

Kdor commita 059630d nima pri sebi, lahko potem normalno naredi pull, kot da tega commita nikoli ni bilo. Če pa ga kdo že ima pri sebi in bi se ga rad znebil, lahko naredi

git reset 0bb2397        # commit pred tem
rm -rf flask/zalaenv/    # pobrišemo neželeno
git pull

Če ni bilo lokalnih sprememb, bo pull uspel. V nasprotnem primeru bo treba narediti še commit, da bo lahko pri pullu prišlo do združitve.

zalazni commented 6 years ago

Pozdravljeni @jaanos , sem uredila zadevo, hvala za nasvet. Stvar je taka, da sem delala v virtualnem okolju (zalaenv, kot ste že sami ugotovili) na drugem računalniku, saj je bilo precej lažje kot na mojem računalniku, ki ima Windowse. Tudi, če sem se pri commitanju vpisala s svojim uporabniškim imenom in geslom, pa me čudi, da je bil commit izveden iz strani uporabnika nocmatic, čigar računalnik sem uporabljala, verjetno je to nekje skrito shranjeno in mi ni uspelo spremeniti. Skratka, sedaj je zalaenv dodano v .gitignore, prav tako pa je mapa izbrisana.

Lep pozdrav in hvala še enkrat, Zala

jaanos commented 6 years ago

Da nastaviš svoje podatke za commitanje, uporabi sledeča ukaza (znotraj repozitorija):

git config --local user.name "Ime Priimek"
git config --local user.email "e.postni@naslov"

Določilo --local določa, da te vrednosti veljajo samo za trenutni repozitorij. Z določilom --global se pa nastavijo vrednosti, ki naj veljajo povsod (če ni drugače določeno) - tako lahko @nocmatic na svojem računalniku privzeto nastavi svoje podatke. Za potrebe identifikacije uporabnika pa GitHub uporabi e-poštni naslov.

Opažam sicer, da je commit 059630d še vedno na repozitoriju, kar pomeni, da je repozitorij še vedno po nepotrebnem velik (tudi, če so v zadnjem commitu te datoteke pobrisane). Najbolje bo, če @zalazni zadnje tri commite združiš v enega:

git reset --hard 0bb2397      # postaviš se na commit pred problematičnim
git merge --squash 5b9b18f    # vrneš spremembe do zadnjega commita
git commit --no-edit          # narediš nov commit
git push -f

Očitno je že prej prišlo do force pusha, saj imam pri sebi commit 80e1f35, ki ga ni med predhodniki zadnjega commita na GitHubu. So pa vse spremembe iz izgubljenih commitov vključene, tako da v resnici ni razlike - če ima npr. @JureMB (kot avtor) ta commit pri sebi in naredi pull, bo sicer prišlo do združevanja, a se ne bo nič spremenilo. Kot rečeno, v normalnem delovnem toku se force pushem raje izogibajte.

zalazni commented 6 years ago

Sem poskusila tudi na predlagan način in vseeno ni delalo, da bi commitala iz svojega računa. Verjetno sem še nekaj spregledala. S force pushi pa se če se le da ne upam igrati, saj sem ravno to poskušala včeraj in skoraj povozila celotno delo, a sem na srečo imela shranjen backup, tako da nismo ostali praznih rok.

jaanos commented 6 years ago

V redu - zdaj so na repozitoriju tudi že novi commiti (vključno s prej nedosegljivimi), tako da bi tole brisanje bilo že bolj komplicirano. Boste pa vedeli za naslednjič.