Inne odpowiedzi wyglądały na niepełne.
Próbowałem w pełni poniżej i działało dobrze.
UWAGA:
1. Wykonaj kopię swojego repozytorium, zanim spróbujesz poniżej, aby zachować bezpieczeństwo.
Szczegóły:
1. Cały rozwój odbywa się w gałęzi
programistów
3. Od czasu do czasu kod musi zostać przeniesiony / nadpisany do gałęzi qa
więc musimy zastąpić gałąź qa z gałęzi dev
Część 1:
Za pomocą poniższych poleceń starsza qa została zaktualizowana do nowszego dev:
git checkout dev
git merge -s ours qa
git checkout qa
git merge dev
git push
Automatyczny komentarz do ostatniego push daje poniżej:
// Output:
// *<MYNAME> Merge branch 'qa' into dev,*
Ten komentarz wygląda odwrotnie, ponieważ powyższa sekwencja również wygląda odwrotnie
Część 2:
Poniżej znajdują się nieoczekiwane, nowe lokalne zobowiązania w dev, niepotrzebne,
więc musimy wyrzucić i uczynić dev nietkniętym.
git checkout dev
// Output:
// Switched to branch 'dev'
// Your branch is ahead of 'origin/dev' by 15 commits.
// (use "git push" to publish your local commits)
git reset --hard origin/dev
// Now we threw away the unexpected commits
Część 3:
Sprawdź, czy wszystko jest zgodne z oczekiwaniami:
git status
// Output:
// *On branch dev
// Your branch is up-to-date with 'origin/dev'.
// nothing to commit, working tree clean*
To wszystko.
1. stara qa jest teraz nadpisywana przez nowy kod oddziału dewelopera
2. local is clean (zdalne pochodzenie / dev jest nietknięte)