Mam dwie gałęzie email
i staging
. staging
jest najnowszy i nie potrzebuję już starych zmian w email
oddziale, ale nie chcę ich usuwać.
Więc po prostu chcą zrzucić całą zawartość staging
w email
taki sposób, aby oba wskazują na ten sam popełnił. Czy to jest możliwe?
Odpowiedzi:
Możesz użyć strategii scalania „naszej”:
źródło
;
na końcu każdego polecenia? Zrobiłem bez;
i wydaje się, że działa. Również ta odpowiedź jest niekompletna, trzecim krokiem jest sprawdzenie starej gałęzi (e-mail), a następnie ponowne scalenie z inscenizacją.git rebase -s theirs <oldbranc> <newbranch>
działa również (bez względu na to, jaką gałąź posiadasz). Zauważ, że w rebase „ich” to tak naprawdę nowa gałąź, ponieważ „nasza” jest głową, do której obecnie stosujemy zatwierdzenia.Jeśli chcesz, aby oba e-maile „i” pomostowe były takie same, możesz oznaczyć gałąź „e-mail”, a następnie zresetować gałąź „e-mail” do „pomostowego”:
Możesz również zmienić podstawę gałęzi „przemieszczania” w gałęzi „e-mail”. Ale wynik będzie zawierał modyfikację dwóch gałęzi.
źródło
git checkout
,git check
że według mojej wiedzy nie istniejeemail
głowa oddziału powinna po prostu wskazywać tę samą głowęstaging
i oboje będą mieli te same zobowiązania, tę samą historię.Widziałem kilka odpowiedzi i to jedyna procedura, która pozwoliła mi to naprawić bez żadnych konfliktów.
Jeśli chcesz wszystkie zmiany od branch_new w branch_old, to:
po zastosowaniu tych czterech poleceń możesz bez problemu przesuwać rozgałęzienie
źródło
Pozostałe odpowiedzi dały mi właściwe wskazówki, ale nie pomogły całkowicie.
Oto, co zadziałało dla mnie:
Bez czwartego kroku połączenia ze naszą strategią push jest uważany za aktualizację bez szybkiego przewijania do przodu i zostanie odrzucony (przez GitHub).
źródło
merge -m 'This is not my beautiful house.' -s ours origin/email
.Jeśli jesteś podobny do mnie i nie chcesz zajmować się scalaniem, możesz wykonać powyższe kroki, z wyjątkiem użycia siły zamiast scalania, ponieważ spowoduje to rozpraszający ślad dziennika papieru:
Uwaga: Dzieje się tak tylko wtedy, gdy NAPRAWDĘ nigdy nie chcesz ponownie wyświetlać treści w wiadomości e-mail.
źródło
Chciałem połączyć dwie gałęzie, aby cała zawartość
old_branch
została zaktualizowana o zawartość znew_branch
Dla mnie działało to jak urok:
źródło
Co powiesz na:
źródło
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:
Automatyczny komentarz do ostatniego push daje poniżej:
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.
Część 3:
Sprawdź, czy wszystko jest zgodne z oczekiwaniami:
To wszystko.
1. stara qa jest teraz nadpisywana przez nowy kod oddziału dewelopera
2. local is clean (zdalne pochodzenie / dev jest nietknięte)
źródło
Najłatwiejszy sposób to zrobić:
Teraz gałąź e-maila i inscenizacja są takie same.
źródło
email
oddziale. To jak usuwanieemail
gałęzi i tworzenie jej od nowa na czelestaging
gałęzi.źródło
Ten nie zmienia oryginalnej nowszej gałęzi i daje możliwość dokonania dalszych modyfikacji przed ostatecznym zatwierdzeniem.
źródło