Pracowałem nad projektem, ale niestety zapomniałem przejść do mojego oddziału i jako taki pracowałem nad master
Jak mogę skopiować pracę (3 pliki), którą tutaj wykonałem, z głównego, do mojego oddziału (nazywanego na przykład branch123 ) bez angażowania się w master?
stash
zapisuje lokalne modyfikacje, a następniestash apply
przywraca je.git reset --hard HEAD
i wróciłeś do ostatniego zatwierdzenia dokonanego w gałęzi master.Przyjęta odpowiedź jest najdokładniejsza, ale istnieje szczególny przypadek, w którym można uprościć. Jeśli pliki, które zmodyfikowałeś w katalogu roboczym, są identyczne w obu
master
ibranch123
możesz to zrobić po prostuNie trzeba niczego ukrywać, ponieważ domyślnym zachowaniem
checkout
jest NIE zastępowanie zmodyfikowanych plików w katalogu roboczym, aby nic nie stracić. (Faktycznie zostało to wspomniane w pierwszych komentarzach Cascabel)Jak wspomnieli inni w komentarzach, jeśli
branch123
jeszcze nie istnieje, możesz to zrobićNa podstawie tego, co tu znalazłem .
źródło
git checkout -b newbranch
master
ibranch123
. Zobacz moją zredagowaną odpowiedź.git stash
jest to, czego potrzebujesz.pełne wyjaśnienie można znaleźć w Git-Tools-Stashing
źródło
Ponieważ możliwe jest utworzenie nowej gałęzi, ale nie jest możliwe wyewidencjonowanie istniejącej gałęzi podczas wyewidencjonowywania plików, znalazłem następującą sztuczkę przy użyciu gałęzi tymczasowej do pracy:
Ten scenariusz działa przynajmniej z wtyczką Git VS 2015, ale najprawdopodobniej działałby z dowolnym narzędziem git.
EDYCJA: Dowiedziałem się, że będziesz musiał wykonać rebase (git rebase --onto) oddziału temp przed wykonaniem scalenia. W przeciwnym razie zmiany w wzorcu zostaną uwzględnione podczas scalania. Dodatkowy krok 3.5 powyżej. Zobacz więcej na temat rebase tutaj: https://git-scm.com/book/en/v2/Git-Branching-Rebasing
źródło