Başka soru sözü git pull
bir gibidir git fetch
+ git merge
.
Fakat git pull
VS git fetch
+ arasındaki fark git rebase
nedir?
Başka soru sözü git pull
bir gibidir git fetch
+ git merge
.
Fakat git pull
VS git fetch
+ arasındaki fark git rebase
nedir?
Yanıtlar:
Sorunuzdan, git merge
ve arasındaki farkı gerçekten sorduğunuzun oldukça açık olması gerekir git rebase
.
Diyelim ki ortak durumda olduğunuzu varsayalım. Getirmeden sonra, işler şöyle görünür:
- o - o - o - H - A - B - C (master)
\
P - Q - R (origin/master)
Bu noktada birleşirseniz (git pull'un varsayılan davranışı), herhangi bir çakışma olmadığını varsayarsak, bununla sonuçlanırsınız:
- o - o - o - H - A - B - C - X (master)
\ /
P - Q - R --- (origin/master)
Öte yandan, uygun rebase yaptıysanız, bununla sonuçlanır:
- o - o - o - H - P - Q - R - A' - B' - C' (master)
|
(origin/master)
Çalışma ağacınızın içeriği her iki durumda da aynı olmalıdır; yeni bir tarih yarattınız . Rebase, geçmişinizi yeniden yazar ve başlangıçta ( R
) yerine orijinalin yeni ana dalını ( ) üstlenmiş gibi görünmesini sağlar H
. Ana şubenizden bir başkası daha önce almışsa, rebase yaklaşımını asla kullanmamalısınız.
Son olarak, git pull
config parametresini branch.<name>.rebase
true olarak ayarlayarak belirli bir dal için birleştirme yerine rebase kullanacak şekilde ayarlayabileceğinizi unutmayın . Bunu kullanarak tek bir çekme işlemi için de yapabilirsiniz git pull --rebase
.
git pull
koşma gibidir git fetch
ardından git merge
git pull --rebase
gibidir git fetch
ardındangit rebase
git pull
bir git fetch
+ gibidir git merge
.
"Varsayılan modunda git çekme kısaltması ve
git fetch
ardındangit merge
FETCH_HEAD" Daha kesin olarak, verilen parametrelerlegit pull
çalışırgit fetch
ve sonragit merge
alınan dal kafalarını geçerli dalda birleştirmeye çağırır "
(Ref: https://git-scm.com/docs/git-pull )
'Ama git pull
VS git fetch
+ arasındaki fark nedir? git rebase
'
Yine aynı kaynaktan:
git pull --rebase
"--Rebase ile git birleştirme yerine git rebase'i çalıştırır."
'arasındaki fark merge
ve rebase
'
burada da yanıtlanır:
https://git-scm.com/book/en/v2/Git-Branching-Rebasing
(sürüm geçmişinin kaydedilme biçimini değiştirme arasındaki fark)
git fetch + git rebase
komutların çalışma şeklini gerçekten anlıyorum . Git ağacımızda şu an az ya da çok çatışma yok :)