Git push özelliği şube rebase sonra reddetti
TAMAM, bu basit git bir senaryo olduğunu düşündüm, neyi kaçırıyorum?
master
dal ve feature
bir şube var. master
, master
** 7, ve sonra biraz daha biraz üzerinde bazı çalışmalar yapıyorum. Böyle bir şey iptalleri sipariş anlaşılacağı sözlük sırası () ile bitireceğim:
A--B--C------F--G (master)
\
D--E (feature)
Sorun yok git push origin master
tutmak için uzaktan master
güncelleme, ne de git push origin feature
(feature
) sağlamak için bir uzaktan yedekleme için benim feature
iş. Şu ana kadar iyiyiz.
Ama şimdi istiyorum master F--G
iptalleri üzerine feature
rebase, ben git checkout feature
git rebase master
. Hala iyi. Şimdi var:
A--B--C------F--G (master)
\
D'--E' (feature)
Sorun:yeni rebased feature
yedekleme istediğim an git push origin feature
ile dallıitme reddedilirağaç rebasing nedeniyle değişti. Bu sadece git push --force origin feature
ile çözülebilir.
Bana lazım emin olmadan --force
kullanarak nefret ediyorum. , Buna ihtiyacım var mı? Rebasingmutlakapush
--force
ful olmalıdır ertesi ima ediyorsunuz?
Bu özellik, şube başka geliştiriciler ile paylaşılmaz, bir sorunum yokde factozorla basarak, herhangi bir veri kaybetmeyeceğim, bu soru daha kavramsal.
CEVAP
Asıl sorun git push
varsayan uzak şube olabilir hızlı iletilen için senin yerel şube, tüm farkı arasında yerel ve uzak dalları yerel olan bazı yeni iptalleri sonunda gibi:
Z--X--R <- origin/some-branch (can be fast-forwarded to Y commit)
\
T--Y <- some-branch
git rebase
D E tamamlar ve yeni bir temel ve yeni taahhüt için uygulanır gerçekleştirdiğinizde oluşturulur. Böyle bir şey var rebase sonra demek oluyor
A--B--C------F--G--D'--E' <- feature-branch
\
D--E <- origin/feature-branch
Bu durumda uzak şube hızlı iletilen yerel olamaz. Gerçi, teorik olarak yerel şube uzak (tabii ki bu durumda gerek yok), ama git push
yapar gibi ileri sadece birleştirir birleştirilecek atar ve hata.
Ve --force
seçeneği sadece uzaktan Şubesi durumunu görmezden gelmek ve bu ayar ne içine itiyorsun işlemek. git push --force origin feature-branch
sadece yerel feature-branch
33 *geçersiz kılar.
Benim görüşüme göre, master
özellik dalları ve kuvvet-itme rebasing onları uzak depoya geri TAMAM o dalda çalışan tek kişi sen olduğun sürece.
Rebase özelliği başka bir şube üzerine...
Nasıl resynchronise biri rebase ya da ...
Nasıl git-svn uzak bir şube getirdim s...
Şube ne birleştirme sonra...
Filtre-şube --ağaç-filtre sonra git re...