Chyba rozumiem git pull
i to jak to wytłumaczyć w to, co ja nazywam „prościej”:Jak wyjaśnić "git pull --rebase" w prostych słowach?
- Generalnie
git pull
jest o scalanie jest „remote” oddział w „local” gałąź. - Bardziej szczegółowo, git używa zawartości "zdalnego" oddziału do "aktualizacji"/"modyfikacji" zawartości "lokalnej" gałęzi.
- Bardziej szczegółowo, jeśli plik został zmodyfikowany w gałęzi "lokalnej", ale nie w gałęzi "zdalnej", to po scaleniu zawartość pliku będzie taka sama jak zawartość w "lokalnym". " gałąź. Odwrotna też jest prawda. Jeśli plik został zmodyfikowany w gałęzi "zdalnej", ale nie w gałęzi "lokalnej", zawartość zostanie pobrana z gałęzi "zdalnej".
- Jeśli plik został zmodyfikowany w obu gałęziach ("lokalny" i "zdalny") niż git, to spróbuj, aby wprowadzić modyfikacje z obu oddziałów. Jeśli zmiany nastąpią w różnych miejscach pliku, obie zmiany zostaną zastosowane i będą obecne w treści pliku po scaleniu.
- Jeśli zmiany zachodzą w tym samym miejscu, mamy tzw. Konflikt scalający i nie zamierzam dotykać tej sprawy dla uproszczenia.
- W wyniku scalenia modyfikujemy "lokalne" repozytorium i dlatego musimy "zatwierdzić".
Teraz chcę uzyskać ten sam rodzaj wyjaśnienia dla git pull --rebase
. Nie chcę używać takich pojęć jak "głowa", "indeks", "pobieranie", "upstream", ponieważ te pojęcia/pojęcie tylko mylić początkujących, takich jak ja. Wiem, że muszę nauczyć się tych "zaawansowanych" koncepcji i robię to czytając samouczki, ale na razie, jako część mojego procesu uczenia się, chcę zrozumieć git pull --rebase
.
DODANO
Myślę, że w pewnym momencie usłyszałem następujące wyjaśnienie. Pod numerem git pull --rebase
. Kiedy się łączymy, robimy to nie w sposób "symetryczny", jak opisano powyżej. Zamiast tego najpierw "zapomnieliśmy" zmian w "lokalnym" repozytorium i zastosowaliśmy tylko zmiany z "zdalnego" repozytorium. Robiąc to, zasadniczo "kopiujemy" zdalne repozytorium takim jakim jest. Następnie stosujemy zmiany z "lokalnego" repozytorium na górze. Jednak nadal nie jest dla mnie jasne, co to dokładnie oznacza. W szczególności, co oznacza "na wierzchu".
Należy pamiętać, że git pull to pobieranie git, a następnie git merge. To może pomóc zrozumieć, czym jest HEAD, wraz z indeksem. Jeśli tego nie zrobisz, trafisz na piaszczystą ławicę, jeśli coś nie pójdzie tak szybko, jak planowano. – rubenvb
Jak napisałem w pytaniu, nie wiem, co znaczy "przynieść". – Roman
@Roman, robisz teraz ... – alexis