Współpracownik i ja pracujemy obecnie w oddziale głównym. Mam w drzewie roboczym kod, którego nie chcę zatwierdzać (instrukcje debugowania itp.). Teraz, jeżeli popełnia zmian do niektórych z tych samych plików, nie mogę połączyć je:Jak sprawić, aby Git Merge obsługiwał niezatwierdzone zmiany w moim drzewie roboczym?
$ git merge origin/master
Updating 1b8c5c6..eb44c23
error: Entry 'blah.java' not uptodate. Cannot merge.
Jadąc od tła Subversion, jestem przyzwyczajony do mojego drzewa roboczego automatycznie scalone kiedy pociągnąć zmiany z repozytorium a jeśli są konflikty, rozwiązuję je ręcznie.
Najszybszym sposobem znalazłem zrobić to w git jest:
$ git stash
$ git merge origin/master
$ git stash pop
Zasadniczo, usuwając moje niezatwierdzone zmiany, robi scalanie i ponowne zastosowanie zmian. Jak mogę określić scalanie, aby automatycznie scalać moje robocze drzewo ze zmianami, które próbuję wprowadzić?
Co jeśli masz konflikty scalania? Co by się stało, gdyby połączyć brudne pliki (zmodyfikowane pliki)? Zobacz także "Zabawa z zachowaniem lokalnych zmian" na blogu Junio C Hamano (git maintainer): http://gitster.livejournal.com/29060.html –
Dzięki za link. Znowu jednak, zdecydowana większość czasu, spodziewam się albo żadnych konfliktów, albo bardzo drobnych, których nie mam nic przeciwko poprawianiu ręcznie. Ryzyko konfliktu jest takie samo, jeśli i tak popełnię brudne pliki, z wyjątkiem tego, że muszę zadać sobie trud ich unieważnienia. –
Powiązane pytanie: http://stackoverflow.com/questions/18529206/when-do-i-need-to-do-git-pull-before-or-after-git-add-git-citit – leo9r