Git: przeniesienie commitów do innej gałęzi

Witajcie.
Temat nie związany z railsami, ale szczerze mówiąc nie znam lepszego forum, gdzie siedzi równie wielu speców od gita :wink:
Mam taki problem:
Stworzyłem sobie brancha i dodałem commita do niego. Następnie przełączyłem się z powrotem na mastera i tam commitowałem zmiany, które miały iść do mojego nowego brancha. W jaki sposób teraz “przenieść” moje commity z gałęzi master do tej nowej?
Z góry dzięki za odpowiedzi.
Tak btw: przydałaby się nowa kategoria forum, gdzie możnaby dyskutować o tematach około railsowych(mongrel,thin,capistrano,git,chef etc)

Używając cherry-pick możesz przenieść pojedyńcze commity z jednej gałęzi do drugiej:

git checkout galaz-z-patchem git cherry-pick sha-commita

Dopowiem, że jeśli chcesz usunąć te commity z mastera (ale pod warunkiem, że nie wpushowałeś ich jeszcze!) to albo zrób rebase interaktywny (opcja -i) usuwając niechcniane commity, albo (jeśli chcesz usunąć N ostatnich commitów) git reset --hard HEAD~N. Jeszcze raz przypominam o zasadzie "nie ruszam commitów które wypushowałem).

E tam,

git push --force

for teh win! :smiley:

W sumie racja. Niech inni się martwią :D.

Ale dzieci, tak już na serio: my tu sobie z Radarkiem żartujemy, ale zastanówcie się trzy razy przed zrobieniem push --force. I zapytajcie kolegów z zespołu :wink:

Jeszcze jest opcja zrobienia “git revert” - czyli stworzenie nowego commita, który wycofa innego commita (można takie cuś wypushować). Tak mi kiedyś poradził Radarek jak zadałem mu podobne pytanie, nie wiem dlaczego teraz o tym nie wspomniał :wink:

Bo paskudzi historię i ma sens tylko jeśli commit do zrevertowania faktycznie został już popchnięty (pamiętajcie dzieci, jeśli można uniknąć push --force, to należy unikać)

ok, cherry-pick pomógł :wink: potem zresetowanie kilku ostatnich commitów (na szczęście nie popchnąłem zmian dalej) i wszystko śmiga jak złoto :wink:
dzieki za pomoc;)