Jak rozwiązać problemy w pomocy перебазировке Git

0

Pytanie

Próbuję przenieść swoją lokalną gałąź przeciwko głównej gałęzi. Z mojej lokalnej gałęzi wykonałem poniższe polecenie do relokacji. Ja ćwiczyłem w użyciu narzędzia wiersza polecenia (czyli Git Bash) w ciągu pewnego czasu i chciałbym ją wykorzystać do rozwiązywania bieżących problemów.

Mogę użyć narzędzia kodu Visual Studio do podejmowania bieżących / przychodzących / obu zmian.. Ale czy istnieje sposób, aby zrobić to samo za pomocą Git Bash? Również dla następującego scenariusza, jaki był preferowany sposób poprawki?

> git pull --rebase origin master
> git status                                                                                                                                             
interactive rebase in progress; onto 53681c8
Last commands done (2 commands done):
   pick 89bb0987 Updated messenger.xml
   pick 990bn189 Updated messenger.xml
Next commands to do (9 remaining commands):
   pick 6780f98 Updated messenger.xml
   pick 9091m969 Updated updated_numbers.xml
  (use "git rebase --edit-todo" to view and edit)
You are currently rebasing branch 'feature-jd-bulk-messenger' on '53681c8'.
  (fix conflicts and then run "git rebase --continue")
  (use "git rebase --skip" to skip this patch)
  (use "git rebase --abort" to check out the original branch)

Unmerged paths:
  (use "git restore --staged <file>..." to unstage)
  (use "git add <file>..." to mark resolution)
        both modified:   jd-test/admin/messenger.xml
git
2021-11-24 05:14:19
1

Najlepsza odpowiedź

0

To po prostu zwykły konflikt fuzji, zmian w lokalnej gałęzi pokrywają się lub nakładają się zmiany w historii autostrady i trzeba zdecydować, jak powinien wyglądać wynik, bo Git słusznie nie odważy się odgadnąć.

czy istnieje sposób, aby zrobić to samo za pomocą Git Bash?

Tak, zdecydować, co jd-test/admin/messenger.xml powinno to wyglądać tak, dodaj to git rebase --continuejaki by narzędzie scalania ci się podobał, to musi być w stanie zautomatyzować sekwencja edycji/wyboru/scena dla ciebie. Używam vimdiff, który z rozmachem radzi sobie z tym, czy integracja Git VS Code nie rozumie, co tu się dzieje?

Dla przykładu,

git init `mktemp -d`; cd $_
seq 5 >file; git add .; git commit -m-
git branch -t mine
sed 2s,$,a, -i file; git commit -am2
git checkout mine
sed 3s,$,a, -i file; git commit -am3
git rebase

i pojawi się konflikt w file, gdzie prawidłowy wynik-wziąć obie zmienione linie jak jest, ale Git nie może być na tyle pewny w tym, aby po prostu zrobić to za ciebie. git status tutaj pojawia się znajomy komunikat, mogę go zrozumieć, zdając sobie sprawę, że перебазировка teraz właściwie interaktywna, ona czeka na mnie, ona współpracuje ze mną. Ja bym zrobił git mergetool tutaj.

Jeśli masz zamiar robić dużo tego, możesz chcieć włączyć ponowne wykorzystanie ponowne podłączonych rozwiązań re: git config rerere.enabled true; git rerere przed dodaniem rozdzielczość w tym po raz pierwszy, po za tym Git uruchomi go dla ciebie, uruchamiając go, Git zapamięta nowe konflikty i uprawnienia w indeksie, na wypadek, gdyby znów pojawią się w kolejnych перебазировках.

2021-11-24 06:46:20

W innych językach

Ta strona jest w innych językach

Русский
..................................................................................................................
Italiano
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................