GIT Zastąp gałąź master


33

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 ...

Odpowiedzi:


55

Jeśli chcesz wszystkie zmiany od masterwewną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_branchprzekazane 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 --rebasena dev_branchdostać zmiany.


Możesz także zmienić nazwę gałęzi programisty na coś starego, a następnie utworzyć nową gałąź mastero tej samej nazwie:

git branch -m dev_branch old_dev_branch
git branch -m master dev_branch

Lub skorzystaj ze oursstrategii - nie wiesz, dlaczego to nie zadziała:

git checkout master
git merge -s ours dev_branch
git checkout dev_branch
git merge master

Wydaje mi się, że dzięki rozwiązaniu zmieniającemu nazwę nie możesz teraz naciskać dev_branchna pochodzenie (jeśli takowe istniało), a także nie będziesz już mieć masterlokalnego oddziału.
— aidan

Dzięki @slhck! Z jakiegoś powodu moja gałąź etapu nie była aktualizowana po normalnym scaleniu. Powtarzał, że moja gałąź sceniczna jest aktualna. Użycie strategii „naszej” rozwiązało to dla mnie.
— Zręczny Shinobi,

nasz miałby wpływ tylko na sporne fragmenty, ale on chce całkowicie odnowić gałąź, nie tylko konflikty! (przynajmniej tak muszę zrobić i dlaczego znalazłem to pytanie) - Pójdę po nazwę!
— Martin Meeser
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.