2011-12-19 22 views
11

Zawsze używam git rebase do zsynchronizowania mojego kodu, stwierdziłem, że git stash zapisuje bieżącą pracę i po pobraniu najnowszego kodu z mastera możemy połączyć go z naszym kodem za pomocą git stash pop.git stash pop vs git rebase

Załóżmy, że sekwencja jest:

  • git stash, czyli moja obecna praca jest zapisywana
  • git checkout master, następnie git pull master, tzn mam pobrane najnowszy kod z pana
  • git checkout mybranch
  • git stash pop

Zgaduję, że to będzie scalić moją pracę ze zaktualizowanym kodem, jeśli zamiast git stash pop zrobię
git rebase master, to wynik będzie taki sam, czy nie?

Twoja sugestia i pomoc zostaną docenione, Dziękujemy za poświęcony czas.

Odpowiedz

12

Skrytka służy do przechowywania zmian, które jeszcze nie są przeznaczone. Na przykład, jeśli pracujesz nad czymś, co jeszcze nie zostało zrobione, i chcesz przez jakiś czas pracować nad czymś innym, nie wykonując niedokończonej pracy, użyjesz skrytki do przechowywania jej do późniejszego wykorzystania.

Jeśli jednak masz faktyczne zatwierdzenia, które zawierają ukończone prace, użyj albo git merge lub git rebase, aby scalić/ponownie umieścić te zmiany w historii.

+0

Po prostu uświadom sobie istnienie tej funkcji! Zawsze robię rebase ... co za wstyd! Dziękuję :) – nonintanon

+0

Więcej informacji o tym, kiedy używać 'git merge' kontra' git rebase' tutaj: http://stackoverflow.com/a/804156/2104168 – cjsimon