Aby scalić bieżącą gałąź z inną gałęzią bez sprawdzania innej gałęzi:
Scalanie do przodu
To jest naprawdę łatwe. Z definicji szybkie scalanie oznacza po prostu, że wskaźnik gałęzi jest przesuwany do przodu w drzewie zatwierdzeń. Wszystko, co musisz zrobić, to po prostu zasymulować, że:
git branch -f master dev
Ostrzeżenia: Zakłada to, że master
wskazuje na zatwierdzenie, które również znajduje się w dev
gałęzi lub innej gałęzi. Jeśli nie, ryzykujesz utratą pracy! W przeciwieństwie do tego, git merge
który utworzy zatwierdzenie scalania (lub narzeka), gdy szybkie przewijanie do przodu nie jest możliwe, ta metoda po cichu zmusza wskaźnik gałęzi do wskazywania innego zatwierdzenia.
Zakłada to również, że jesteś jedynym, który pracuje nad repozytorium i / lub wiesz, co robisz.
Wskazówka: Jeśli zrobiłeś a git fetch
i masz nowe zatwierdzenia origin/master
, możesz przenieść master
gałąź bez wyewidencjonowywania za pomocą:
git branch -f master origin/master
Scal przez zatwierdzenie scalania
Nie zawsze jest to możliwe. Aby utworzyć zatwierdzenie scalania, musisz wykonać operację scalenia. Aby wykonać operację scalania, należy zatwierdzić zmiany w innym oddziale, które nie znajdują się w bieżącym oddziale.
Jeśli masz zatwierdzenia w master
oddziale, których nie ma w dev
oddziale, możesz:
Oświadczenie: Jest to jedynie dowód słuszności koncepcji, tylko po to, aby pokazać, że czasami możliwe jest połączenie z innym oddziałem bez sprawdzenia. Jeśli chcesz go używać codziennie, prawdopodobnie chcesz utworzyć dla niego alias za pomocą przekierowania powłoki lub utworzyć dla niego skrypt powłoki. Z drugiej strony możesz także utworzyć skrypt powłoki dla krótszego procesu pokazanego w pytaniu.
git checkout -b temp
git merge --no-ff -e master
git branch -f master temp
git checkout dev
git branch -D temp
Wyjaśnienie:
- Sprawdź tymczasową gałąź, która wskazuje na to samo zatwierdzenie, co bieżąca gałąź.
Połącz master
się z gałęzią tymczasową i uruchom edytor komunikatów zatwierdzania. Jeśli chcesz, aby zatwierdzenie scalania wyglądało tak , jakby scaliłeś dev
gałąź master
, edytuj ją z tego:
Merge branch 'master' into temp
do tego:
Merge branch 'dev'
Wskazówka: Możesz użyć -m "Merge branch 'dev'"
zamiast -e
być szybszym.
- Zaktualizuj
master
wskaźnik gałęzi, aby wskazywał na zatwierdzenie scalania.
- Sprawdź
dev
oddział.
- Wymuś usunięcie gałęzi tymczasowej.
To wciąż dotyka twojego działającego drzewa, ale minimalnie. Nie przywraca drzewa do stanu oryginalnego, master
aby ponownie wprowadzić zmiany w rozwoju. Niektórym może to nie przeszkadzać, ale dla innych może być ważne.