Git workflow


#1

Ako ima koji git ninja da pomogne malo oko jednog problema koji imam. Podesio sam na remote masini git working directory za web aplikaciju. Kada zelim update instalaciju uradim git pull i super sve. E sad je problem sto se jako cesto desava da git detektira izmjene na fileovima i javlja konflikte u direktoriju gdje se ne rade izmjene. Privremeno rjesenje je da uradimo git fetch, git rebase. No nedavno se desio neki blesavi whitespace problem sto je opet uzrokovalo konflikte. Testirano na 2 razlicita sistema, centos i debian.

Da li je ovo pravilan nacin?
Ima li itko ideju u cemu bi mogao biti problem ako je ovakav nacin rada ok?
Ima li itko bolji prijedlog za update instalacije na remote lokaciji?
Radi tim ljudi na projektu i valjalo bi imati jedan centralizirani testni server za takvih stvari, gdje bi se update mogao raditi kada zatreba. Valjalo bi napomenuti da se development vrsi u mixu windows i linux masina.


#2

Koji fajlovi budu promijenjeni? Vrlo vjerovatno neki cache file il nesto sto ne bi trebalo bit u repozitoriju uopste. Jedan prijedlog je da izucis koji su to fajlovi i dodas ih u .gitignore.
Takodjer, nece skodit da pogledas malo capistrano.


#3

Fajlovi koji bi trebali biti updateovani uvijek konflikte stvaraju. Ne znam koji je razlog. Vjerovatno ja nesto pogresno radim.


#4

capistrano bi mogao biti ono sto trazim.

EDIT:

Uradit cu jos jedan test sa projektom da vidim sta se tocno desi.


#5

izgleda da ima opcija u .git/config

filemode = true

koja stvara probleme. detektira promjenu permisija i kaze da je file izmjenjen. stvar je rijesena kad se stavi na false.


#6

Cesti mix git-a na windowsima i linuxu zna oznaciti citav fajl kao izmjenjen pa bi na windowsima trebao dodati:

git config core.autocrlf true

Eh sada odgovor na pitanje da li je tvoj nacin rada pravilan? Ukratko, nije. Najidealnije je da radis ‘git pull’, pustis da on odradi merge i ako detektuje konflikte, pazljivo prodjes kroz fajlove i rucno ih popravis. U gitu, konflitki se smatraju ozbiljnom situacijom (kao sto bi i trebalo) i tu ne bi trebalo pustiti alat da sam odlucuje kako fajl treba da izgleda.

Inace, kako sam primjetio, pocetnicima (i onima koje ne zele da nauce korstiti git) pull sa konfliktima je najmrza opcija. Onda po inerciji pocnu raditi rebase, stash, reset i slicne gluposti koje naprave takvu zbrcku u historiji fajla da se ne zna ko pije a ko placa.