branchKomutun bu biçimini kullanıyorsanız (başlangıç noktasıyla), nerede olduğunuzun bir HEADönemi yoktur.
Ne yapıyorsun:
git checkout dev
git branch test 07aeec983bfc17c25f0b0a7c1d47da8e35df7af8
Önce HEADşubeye ayarladın dev,
İkincisi, commit üzerine yeni bir dal başlatırsınız 07aeec98. Bu commit'de bb.txt yok (github deponuza göre).
Yeni teslim aldığınız konumda yeni bir şube başlatmak istiyorsanız, başlangıç noktası olmadan şubeyi çalıştırabilirsiniz:
git branch test
veya diğerinin yanıtladığı gibi, tek bir işlemde şubeye gidin ve kontrol edin:
git checkout -b test
Sanırım 07aeec98şubenin bir parçası olan bu gerçek kafanızın karışabileceğini düşünüyorum dev. Bu taahhüdün bir atası olduğu doğrudur, deven son taahhüde ulaşmak için değişikliklere ihtiyaç vardır dev. Ancak, en yeniye ulaşmak için gerekli olan diğer işlemlerdir devve bunlar mutlaka tarihinde değildir 07aeec98.
8480e8ae(bb.txt eklediğiniz yer) örneğin geçmişinde değil 07aeec98. Den dallarsanız 07aeec98, tarafından yapılan değişiklikleri alamazsınız 8480e8ae.
Başka bir deyişle: A dalını ve B dalını C dalına birleştirirseniz, ardından A işleminde yeni bir dal oluşturursanız, B'de tanıtılan değişiklikleri alamazsınız.
Aynı burada, dev'de birleştirdiğiniz master ve dev olmak üzere iki paralel dalınız vardı. Bir ana taahhüdünden (birleştirmeden daha eski) dallanma, dev değişikliklerini size sağlamaz.
Ana öğeden yeni değişiklikleri kalıcı olarak özellik dallarınıza entegre etmek istiyorsanız , masterbunlarla birleşmeli ve devam etmelisiniz . Bu, özellik şubelerinizde birleştirme işlemleri oluşturacaktır.
Eğer özellik dalları yayınlamadıysanız, ayrıca güncellenen ana bunları rebase: git rebase master featureA. Olası çatışmaları çözmeye hazırlıklı olun.
Özellik dalları üzerinde birleştirme taahhütleri olmadan çalışabileceğiniz ve yine de ana sürümdeki yeni değişikliklerle entegre olabileceğiniz bir iş akışı istiyorsanız, aşağıdakileri öneririm:
- her yeni özellik dalını bir usta taahhüdüne dayandırın
devusta taahhüdünde bir şube oluştur
- Özellik dalınızın ana kopyadaki yeni değişikliklerle nasıl bütünleştiğini görmeniz gerektiğinde, hem ana parçayı hem de özellik dalını
dev.
devDoğrudan taahhütte bulunmayın , yalnızca diğer şubeleri birleştirmek için kullanın.
Örneğin, A ve B özelliği üzerinde çalışıyorsanız:
a---b---c---d---e---f---g -master
\ \
\ \-x -featureB
\
\-j---k -featureA
devYeni ana makineyle iyi çalışıp çalışmadıklarını kontrol etmek için dalları bir dalda birleştirin :
a---b---c---d---e---f---g -master
\ \ \
\ \ \--x'---k' -dev
\ \ / /
\ \-x---------- / -featureB
\ /
\-j---k--------------- -featureA
Özellik dallarınız üzerinde çalışmaya devam edebilir ve hem ana hem de özellik dallarından devdüzenli olarak yeni değişikliklerle birleşmeye devam edebilirsiniz .
a---b---c---d---e---f---g---h---i----- -master
\ \ \ \
\ \ \--x'---k'---i'---l' -dev
\ \ / / /
\ \-x---------- / / -featureB
\ / /
\-j---k-----------------l------ -featureA
Yeni özellikleri entegre etme zamanı geldiğinde, özellik dallarını (değil dev!) Ana öğeye birleştirin .