Właśnie dokonałem zmian w gałęzi. Jak mogę zatwierdzić zmiany w innej gałęzi?
Próbuję użyć:
git checkout "the commmit to the changed branch" -b "the other branch"
Jednak uważam, że nie jest to właściwe, ponieważ w tym przypadku tworzę nową gałąź zamiast zatwierdzać zmiany w „innej gałęzi”.
Czy powinienem zamiast tego użyć następującego polecenia?
git merge "the other branch"
Odpowiedzi:
git checkout -b your-new-branch
git add <files>
git commit -m <message>
Najpierw sprawdź swój nowy oddział. Następnie dodaj wszystkie pliki, które chcesz przekazać do przemieszczania. Na koniec zatwierdź wszystkie dodane pliki. Możesz to zrobić
git push origin your-new-branch
później, aby zmiany pojawiły się na pilocie.źródło
git status
aby zobaczyć, co jest obecnie wystawiane, a co nie.git add
i drugiegit commit -a
?git checkout -b your-new-branch
zamiastgit checkout your-new-branch
?Jeśli nie dokonałeś zmian
Jeśli Twoje zmiany są zgodne z inną gałęzią
Tak jest w przypadku pytania, ponieważ OP chce zatwierdzić nową gałąź i ma również zastosowanie, jeśli zmiany są zgodne z gałęzią docelową bez wyzwalania nadpisania.
Jak w zaakceptowanej odpowiedzi Johna Brodiego, możesz po prostu pobrać nową gałąź i wykonać pracę:
Jeśli Twoje zmiany są niezgodne z inną gałęzią
Jeśli pojawi się błąd:
Następnie możesz schować swoją pracę, utworzyć nową gałąź, a następnie pobrać zmiany w skrytce i rozwiązać konflikty:
Będzie tak, jakbyś wprowadził te zmiany po utworzeniu nowej gałęzi. Następnie możesz zatwierdzić jak zwykle:
Jeśli dokonałeś zmian
Jeśli chcesz zachować zmiany w oryginalnej gałęzi
Zobacz odpowiedź Carla Noruma z selekcją wiśni, która jest właściwym narzędziem w tym przypadku:
Jeśli nie chcesz zachować zatwierdzeń w oryginalnej gałęzi
Zobacz odpowiedź joeytwiddle na temat tego potencjalnego duplikatu . Wykonaj odpowiednio dowolny z powyższych kroków, a następnie przywróć oryginalną gałąź:
Jeśli wprowadziłeś zmiany do udostępnionego pilota, takiego jak GitHub, nie powinieneś próbować tego wycofywania, chyba że wiesz, co robisz.
źródło
error: Your local changes to the following files would be overwritten by checkout: ... Please commit your changes or stash them before you switch branches.
pytanie Czy chcesz napisać nową odpowiedź czy edytować moją odpowiedź? Jeśli nie, mogę sam to edytować.Jeśli dobrze rozumiem, zobowiązałeś się do wykonania zobowiązania
changed_branch
i chcesz go skopiowaćother_branch
? Łatwo:źródło