W porządku. Jeśli jestem na gałęzi (powiedzmy working
) i chcę scalić zmiany z innej gałęzi (powiedzmy master
), uruchamiam polecenie git-merge master
będąc w working
gałęzi, a zmiany są scalane bez ponownego bazowania historii. Jeśli uruchomię git-rebase master
, zmiany w master
programie zostaną przeniesione do górnej części mojej working
gałęzi. Ale co, jeśli chcę scalić zmiany z, master
ale ponownie bazować moje zmiany, working
aby być na wierzchu? W jaki sposób mogę to zrobić? Czy da się to zrobić?
Mógłbym uruchomić git-rebase working
na mojej master
gałęzi, aby umieścić zmiany na samej górze w master
gałęzi, ale chciałbym móc to zrobić w swojej working
gałęzi i nie mam pojęcia, jak to zrobić . Najbliższe, co przychodzi mi do głowy, to utworzenie nowej gałęzi z, master
a następnie working
zmiany bazy danych na jej podstawie, ale wtedy zamiast modyfikowania working
gałęzi miałbym nową gałąź.
źródło
git rebase working
przesunąłbymmaster
zmiany (po punkcie, który sięworking
rozgałęził), aby znalazły się na szczycieworking
gałęzi - ale nie jest to zbyt rozsądnemaster
:)Innym sposobem spojrzenia na to jest rozważenie
git rebase master
:Tutaj '
master
' to gałąź upstream i to wyjaśnia dlaczego, podczas rebase,ours
itheirs
są odwrócone .źródło
git difftool
okropną lewą / prawą stronę. Trochę poza tematem, aledifftool
trzymam się git-meld i lubię takie nazwy jak „working-dir”, „stash @ {0}” i tak dalej.git checkout branch_to_update git rebase master
otrzymuję w git logu zatwierdzenia mastera na szczycie lokalnego oddziału, zamiast tego?