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
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!
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
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ł
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ł potem zresetowanie kilku ostatnich commitów (na szczęście nie popchnąłem zmian dalej) i wszystko śmiga jak złoto
dzieki za pomoc;)