Mam starą gałąź programistów, która jest całkowicie nieaktualna. Nie chcę go usuwać, ale chcę całkowicie zastąpić jego zawartość gałęzią master. Czyli chcę dev_branch = master
Próbowałem:
git merge -s ours dev_branch
Nie działało jednak ...
Jeśli chcesz wszystkie zmiany od master
wewnątrz dev_branch
, to:
git checkout dev_branch
git reset --hard master
Działa to tylko wtedy, gdy inne osoby nie sklonowały repozytorium.
Jeśli masz już dev_branch
przekazane do pilota, musisz wykonać:
git push --force
Aby wymusić naciśnięcie na pilocie. Ostrzeżenie: To złamie historię oddziału dla osób, które go wcześniej sklonowały! Następnie, inni ludzie będą musieli zrobić git pull --rebase
na dev_branch
dostać zmiany.
Możesz także zmienić nazwę gałęzi programisty na coś starego, a następnie utworzyć nową gałąź master
o tej samej nazwie:
git branch -m dev_branch old_dev_branch
git branch -m master dev_branch
Lub skorzystaj ze ours
strategii - nie wiesz, dlaczego to nie zadziała:
git checkout master
git merge -s ours dev_branch
git checkout dev_branch
git merge master
dev_branch
na pochodzenie (jeśli takowe istniało), a także nie będziesz już miećmaster
lokalnego oddziału.