Jak sobie radzicie z kwestią pracy na jednym pliku w tym samym czasie przez dwie osoby. Bo git merge zostawia komentarze i trzeba je ręcznie usuwać. Są na to jakieś inne sposoby? Narazie sobie radzimy przez nie wchodzenie sobie w drogę.
Jak sobie radzicie z kwestią pracy na jednym pliku w tym samym czasie przez dwie osoby. Bo git merge zostawia komentarze i trzeba je ręcznie usuwać. Są na to jakieś inne sposoby? Narazie sobie radzimy przez nie wchodzenie sobie w drogę.[/quote]
Czemu kazdy nie ma swojej osobnej branchy ktora jest mergowana do master po skonczeniu pracy ?
Jezeli chodzi o git to dla mnie ten projekt jest bezkonkurencyjny jezeli chodzi o zarzadzanie wiekszym projektem
jakiś zaawansowany flow nic im nie da, kłopot jest taki, że edytując jeden plik w tym samym miejscu jest duża szansa na konflikt, gałęzie nic tu nie pomogą.
@regedarek: konflikty zawsze się pojawią, commitujcie często i powinno być ok. możecie edytować ten sam plik, problem jest tylko jak edytujecie te same miejsca. co do tych “komentarzy”, to przy merge’u musicie wybrać, który kod ma być aktualny, powinniście to usunąć przed scommitowaniem merge’a.
[quote=drogus]jakiś zaawansowany flow nic im nie da, kłopot jest taki, że edytując jeden plik w tym samym miejscu jest duża szansa na konflikt, gałęzie nic tu nie pomogą.
@lewy313: konflikty zawsze się pojawią, commitujcie często i powinno być ok. możecie edytować ten sam plik, problem jest tylko jak edytujecie te same miejsca. co do tych “komentarzy”, to przy merge’u musicie wybrać, który kod ma być aktualny, powinniście to usunąć przed scommitowaniem merge’a.[/quote]
Captain obvious
Przeciez rozumiem na czym polega problem co nie zmienia faktu ze gitflow pomaga w malych/srednich/duzych projektach
Ehh, i jeszcze kiedy chciałem zrobić git pull wyskoczył bład error: Your local changes to 'Gemfile.lock' would be overwritten by merge. Aborting..
jak tego gita spokojnie używać, pomógł tylko git clone od nowa
Przed pull push merge checkout używaj “git status” i jeśli masz modyfikacje to masz 3 opcje:
git commit (wbicie zmian)
git reset --hard (pozbycie się zmian)
git stash save (przechowaj tymczasowo zmiany) potem git stash apply
Opcja 3 jest praktyczna gdy np pojechałeś z koksem w złym branchu i zorientowałeś się dopiero przed commitem. Stash, zmiana brancha na właściwy, apply i właściwy commit.
[quote=regedarek]Ehh, i jeszcze kiedy chciałem zrobić git pull wyskoczył bład error: Your local changes to 'Gemfile.lock' would be overwritten by merge. Aborting..
jak tego gita spokojnie używać, pomógł tylko git clone od nowa :|[/quote]
Raczej rzadko się zdarza sytuacja, żeby trzeba było klonować repo, żeby sobie z nią poradzić
Ten komunikat mówi Ci, że masz zmiany w Gemfile.lock (“local changes”) i że jeżeli chcesz zrobić pull, to musisz to najpierw scommitować.
[quote=regedarek]Ehh, i jeszcze kiedy chciałem zrobić git pull wyskoczył bład error: Your local changes to 'Gemfile.lock' would be overwritten by merge. Aborting..
jak tego gita spokojnie używać, pomógł tylko git clone od nowa :|[/quote]
uzywaj ‘git pull --rebase’ albo ‘git fetch’ i potem ‘git rebase’
W ogólności: tak - jedynie wygląd historii się zmieni. To jednak jest dobra praktyka, którą należy od początku stosować.
Ale w tym konkretnym przypadku akurat dostałby info, że ma uncommited changes, zrobiłby commita swoich zmian, puścił pulll --rebase i wszystko byłoby cacy. Pewnie nawet by konfliktów nie było. A tak nie zrozumiał komunikatu i musiał klonować repo.
Jak ktoś jest początkujący to robienie rebase’ów lepiej sobie odpuścić, co mu to pomoże tak naprawdę? Że nie będzie miał merge commitrów?[/quote]
Da mu mniej konfliktow i ich łatwiejsze rozwiazywanie. W czym rebase moze zaszkodzic poczatkujacemu? GitHub wydajać swoją appke (ktora jest raczej dla poczatkujacych) tez wybrał taki sposob “synchronizacji”
pull --rebase powoduje więcej konfliktów niż merge. Oraz może bardzo zaszkodzić początkującemu i repozytorium – rebase robiony nieumiejętnie wiąże się z ryzykiem zgubienia commitów (oraz kodu).
$ git plre
Gemfile: needs update
refusing to pull with rebase: your working tree is not up-to-date
[code]$ git pull origin staging
From github.com:drogus/stoliczku
branch staging -> FETCH_HEAD
Updating f569db6…cc78c01
error: Your local changes to ‘README’ would be overwritten by merge. Aborting.
Please, commit your changes or stash them before you can merge.[/code]
Sorry, ale nie wiem dlaczego niby rebase jest w tym wypadku lepszy jeżeli chodzi o komunikaty.
Jak używać? Trzeba się go najpierw nauczyć. Przynajmniej podstawy. A do konfliktów musisz przywyknąć. Można próbować zmniejszyć ich ilość, ale nie da się ich całkowicie wyeliminować. Programowanie to nie magia, to zwyczajne napier***.