Jaka jest właściwa droga?
git add foo.js
git commit foo.js -m "commit"
git pull
git push
Lub
git pull
git add foo.js
git commit foo.js -m "commit"
git push
Lub
git add foo.js
git pull
git commit foo.js -m "commit"
git push
UPD:
Zapomniałem wspomnieć, że w tym przypadku używam git add
do przygotowania śledzonego i zmodyfikowanego pliku. Nie dołączać zupełnie nowego pliku do repozytorium. Czy to zmienia kolejność poleceń?
Odpowiedzi:
Myślę, że najlepszym sposobem na to jest:
Zachowaj swoje lokalne zmiany:
Zaktualizuj gałąź do najnowszego kodu
Scal lokalne zmiany w najnowszym kodzie:
Dodaj, zatwierdź i prześlij swoje zmiany
Z mojego doświadczenia wynika, że jest to droga do najmniejszego oporu w Git (zresztą w wierszu poleceń).
źródło
git stash
?pull = pobierz + scal.
Musisz zatwierdzić to, co zrobiłeś przed połączeniem.
Więc ciągnij po zatwierdzeniu.
źródło
rebase
zamiast tegomerge
. Możesz to zrobić za pomocą jednegogit commit && git rebase
lub drugiegogit pull --rebase
.git pull
umieszczenie moich zmian w fazie, ponieważ uważam to za najbardziej naturalne. Chociaż zdaję sobie sprawę, że działa wiele różnych przepływów pracy (skrytka też jest fajna), więc prawdopodobnie jest to kwestia gustu.Sugerowałbym jak najczęstsze pobieranie ze zdalnej gałęzi, aby zminimalizować duże fuzje i możliwe konflikty.
Powiedziawszy to, wybrałbym pierwszą opcję:
Zatwierdź zmiany przed ściągnięciem, aby twoje zatwierdzenia zostały połączone ze zdalnymi zmianami podczas ściągania. Może to prowadzić do konfliktów, z którymi możesz zacząć sobie radzić, wiedząc, że Twój kod jest już zatwierdzony, gdyby coś poszło nie tak i musisz przerwać scalanie z dowolnego powodu.
Jestem pewien, że ktoś się ze mną nie zgodzi, nie sądzę, że jest jakiś właściwy sposób na wykonanie tego scalania, tylko to, co działa najlepiej dla ludzi.
źródło
git add
dokładnie służy mój przykład.Myślę, że
git pull --rebase
jest to najczystszy sposób na ustawienie najnowszych lokalnych zatwierdzeń na zdalnych zatwierdzeniach, których w pewnym momencie nie masz.W ten sposób nie musisz ciągnąć za każdym razem, gdy chcesz zacząć wprowadzać zmiany.
źródło
Chcesz, aby zmiana została uwzględniona na szczycie bieżącego stanu zdalnej gałęzi. Więc prawdopodobnie chcesz wyciągnąć rękę, zanim się zobowiążesz. Następnie ponownie wprowadź zmiany.
„Brudne” pliki lokalne nie stanowią problemu, o ile nie występują konflikty ze zdalną gałęzią. Jeśli jednak wystąpią konflikty, scalanie zakończy się niepowodzeniem, więc nie ma żadnego ryzyka ani niebezpieczeństwa związanego z ściąganiem danych przed wprowadzeniem lokalnych zmian.
źródło