Wpis z mikrobloga

#naukaprogramowania #git #gerrit

Znam podstawy Gita, ale mam problem z Gerritem.

1. Zrobiłem sobie clone repozytorium (to polecenie co się kopiuje z msg-hook).
2. Wprowadziłem zmiany, dodałem pliki.
3. Zrobiłem commita (git commit -m "msg")
4. Wypushowałem do Gerrita (git push origin HEAD:refs/for/master)
5. Zanim mój commit przeszedł review, to w tym czasie inni zrobili commity i review im przeszło.
6. Chcę poprawić swój commit (bo załóżmy, że na review został cofnięty).
7. Co mam zrobić?

Normalnie to bym wprowadził zmiany i zrobił git commit --amend. Ale teraz nie mogę, bo pewnie będzie konflikt.

Jak pobrać zmiany z serwera do siebie? git fetch czy git pull czy git rebase coś tam? Jak sobie poedytuję pliki (rozwiążę konflikty), to co mam dalej zrobić? Normalnie git commit --amend? Czy jeszcze jakieś polecenie?

I jak to potem będzie w Gerricie? Będzie widać, że rozwiązywałem konflikt (będą tak jakby dwa commity) czy normalnie będzie cały czas ten sam (tylko nowe zmiany)?


  • 8
@mk321: a nie powinienes zrobic checkout na ten swoj commit i po prostu kontynuowac swoja prace (na osobnym branchu)? jak skonczysz to co masz zrobic to wysylasz kolejnego PR i osoba ktora robi review ma sie martwic o merge i merge conflicty

Ja tak robie na czystym Git'cie
@Melcma: no właśnie nie wiem. Ten co robi review to tylko klika w Gerricie. Jakoś tam się robi merge? Z tego co słyszałem, to ja mam się martwić mergem i jak będzie konflikt to podobno ja nie będę mógł zacommitować (czy tam wypushować) dopóki nie rozwiążę.

git commit --amend && git push -f


@plushy: co to zrobi? Dołączę zmiany do commita i #!$%@?ę z force? Co z konfliktami?
Wydaje mi
@mk321: masz tak narzucone zeby #!$%@? --amend i pracowac na masterze? troche sie to mija z celem.

normalnie clonujesz repo, robisz swoj branch, wypychasz swoje commity na tym swoim PR, koles co ma to mergowac merguje twoj branch do mastera, nikt ogolnie nie pracuje na masterze, master to reprezentacja live i zaden guwnokod nie ma prawa na nim siedziec + u mnie nie #!$%@? commitow, kazdy nawet glupi commit ma byc
@Melcma: tak, używamy --amend i w tej chwili pracujemy na masterze (taki moment - miało nie być dużo commitów; potem dopiero mamy używać branch).

Jakby było na branchu i ktoś robiłby review, to rozumiem, że on by potem mergował do mastera. Ale jak tu jest na masterze, to może rzeczywiście nie da się wrzucić zmian z konfliktami.

@plushy: @Melcma: mam sobie pobrać zmiany, zmergować i zrobić commita z --amend