Mój projekt mam Master i Branch1. Rozgałęziałem się z gałęzi 1 i utworzyłem gałąź 2. Zarówno Oddział 1, jak i Oddział 2 posunęły się do przodu z zatwierdzeniami, Oddział 1 był zdalny, a Oddział 2 był dla mnie lokalny. Po zakończeniu wszystkich funkcji Oddziału 1 wszystkie zatwierdzenia zostały zmiażdżone. Po zakończeniu zmian zatwierdziłem zmiany w Oddziale 2 i ponownie wprowadziłem zmiany w Oddziale 1, używając:
# On branch2
git add . && git commit "my branch"
# On branch1
git pull (to get latest changes and update local copy)
# On branch2
git rebase origin/Branch1
# fixed conflicts (1 file)
git rebase --continue
git push origin Branch2
Kiedy jednak wchodzę na github.com, aby utworzyć żądanie ściągnięcia dla mojego oddziału (Branch2), pokazuje 2 zatwierdzenia:
Zgnieciony zatwierdzenie Oddziału 1
Moje zatwierdzenie (komunikat zatwierdzenia „moja gałąź”).
Nie rozumiem tego zachowania. Dlaczego zatwierdzenie oddziału 1 pojawia się jako zatwierdzenie w moim oddziale? Czy istnieje sposób, aby go usunąć, tj. Mam tylko moje zatwierdzenie w moim oddziale?
Odpowiedzi:
0 dla odpowiedzi № 1W żądaniu ściągnięcia zobaczysz wszystkie zatwierdzenia, których brakuje w gałęzi docelowej (np. master
). Można to pokazać za pomocą git log
polecenie z określonym zakresem zatwierdzenia (patrz Używanie zakresów zatwierdzania z Git Log).
$ git log master..origin/branch1 --oneline
c675aeb all commits from branch1 squashed
$ git log master..branch2 --oneline
7be222e my branch
c675aeb all commits from branch1 squashed
GitHub nie dba o to, które zatwierdzenie oddziału zostało pierwotnie wprowadzone. Musisz się połączyć branch1
w master
pierwszy. Następnie rozłóż bazę branch2
na górze master
(lub scalić master
w branch2
).