2009-08-21 15 views
23

używam „git” do kasy kod chromu wykonując tego dokumentu: http://code.google.com/p/chromium/wiki/UsingGitPolecenie "git pull" działa jak "aktualizacja svn"?

i powiedział „Run git ciągnąć lub którykolwiek polecenia należy zaktualizować swoją kasę. ".

Ale napotkany problem to sytuacja, w której mam lokalne zmiany w moim katalogu roboczym git , a następnie uruchamiam "git pull". Mówi się, że coś takiego jak plik XXX nie może uzyskać aktualizacji (dokonałem zmiany lokalnie). Zmuszam "git pull" do pracy, usuwając moją zmianę "git checkout - XXX.cpp"

Czy istnieje sposób, aby uzyskać "git pull", aby połączyć się automatycznie, jeśli to możliwe (odpowiednik aktualizacji svn)?

Dziękuję.

+2

Odpowiednikiem "aktualizacji svn" byłoby "git pull --rebase". Pamiętaj też, że możesz zrobić "git fetch" niezależnie od "git merge" z "git pull". –

Odpowiedz

19

Jeśli chcesz, aby ciągnąć, aby scalić ze zmianami wprowadzonymi lokalnie, musisz najpierw zatwierdzić zmiany w swoim katalogu lokalnym. Lub ukryj zmiany, a następnie pociągnij, a następnie ponownie zastosuj swoją skrzynkę.

+0

np. Patrz http://stackoverflow.com/a/12476984/2109800 – mc0e

8

myślę, co chcesz zrobić, to:

  1. popełnić wszystkie zmiany do lokalnego repozytorium
  2. zrobić 'git rebase'.

To jest nieco lepsze niż "aktualizacja svn" w mojej opinii, ponieważ najpierw zmieni lokalną kopię roboczą tak, jak poprzednio, po pobraniu lub ponownym uruchomieniu z pilota, a następnie pobieraniu i stosowaniu nowych zmian od pilota, a następnie ponownie zastosuj zmiany zatwierdzone lokalnie. Jeśli wystąpi konflikt między zmianami a zmianami zdalnymi, musisz je rozwiązać i postępować zgodnie z instrukcjami, aby kontynuować operację ponownego tworzenia.

W ten sposób zestawy zmian powinny być stosowane we właściwej kolejności.

+2

Dzięki. czy mogę "gitować", a następnie "git rebase", a zamiast tego "git apply stash"? – n179911

+2

absolutnie. Tak właśnie byś zrobił, gdybyś miał zmiany, które nie są jeszcze gotowe, ale chcesz wykonać dowolne zmiany ze zdalnego repo. – user160223

+0

'git stash'' git rebase' 'git stash apply '- działa dla mnie – lowtech