Belirli bir taahhüdün üzerine (tek taahhüt) yamasının uygulanacağından emin olmak istiyorsanız, yeni git 2.9 (Haziran 2016) seçeneğini kullanabilirsiniz git format-patch --base
git format-patch --base=COMMIT_VALUE~ -M -C COMMIT_VALUE~..COMMIT_VALUE
# or
git format-patch --base=auto -M -C COMMIT_VALUE~..COMMIT_VALUE
# or
git config format.useAutoBase true
git format-patch -M -C COMMIT_VALUE~..COMMIT_VALUE
Bkz. Taahhüt bb52995 , taahhüt 3de6651 , taahhüt fa2ab86 , taahhüt ded2c09 (26 Nis 2016), Xiaolong Ye (``) .
(Göre Birleştirilmiş - Junio Cı Hamano gitster
- içinde 72ce3ff tamamlama 2016 23 Mayıs)
format-patch
: --base
temel ağaç bilgilerini kaydetmek için ' ' seçeneği ekleyin
Bakımcılar veya üçüncü taraf test kullanıcıları, yama serisinin uygulandığı tam temel ağacı bilmek isteyebilir. Git --base
ağaç biçimine temel ağaç bilgilerini kaydetme ve ilk iletinin sonuna (kapak mektubu veya serideki ilk düzeltme eki) ekleme seçeneği olan ' ' seçeneğini öğretin .
Temel ağaç bilgisi, diğer herkesin çalıştığı proje geçmişinin istikrarlı kısmının bir parçası olan iyi bilinen bir taahhüt olan "temel taahhüt" ten ve iyi bilinen sıfır veya daha fazla "önkoşul düzeltme ekinden" oluşur. henüz yamalar uygulanmadan önce topolojik sırayla "temel taahhüt" üstüne uygulanması gereken "temel taahhüt" parçası olmayan yamalar uçuş.
"Temel işlem", " base-commit:
" olarak ve ardından işlem nesnesi adının 40-onaltı ile gösterilir.
Bir "önkoşul düzeltme eki", " prerequisite-patch-id:
" ve ardından 40-hex "düzeltme eki" olarak gösterilir; düzeltme eki " git patch-id --stable
" komutundan geçirilerek elde edilebilir .
Git 2.23 (3. Çeyrek 2019) bunu geliştirecektir, çünkü " --base
" seçeneği " format-patch
" patch-ids
önkoşul yamaları " git patch-id --stable
" ile uyumlu bir şekilde hesaplanacak şekilde güncellenen istikrarsız bir şekilde hesaplamıştır .
Bkz. A8f6855 , 6f93d26 (26 Nis 2019), Stephen Boyd ( akshayka
) .
(Göre Birleştirilmiş - Junio Cı Hamano gitster
- içinde 8202d12 tamamlama 2019 13 Haz)
format-patch
: --base patch-id
çıktıyı kararlı hale getir
patch-id
Üretim kodunda bir iri parça işlediğimizde içeriği yıkamıyorduk
diff.c
, ancak bunu ' patch-id
' aracıyla "kararlı" yama-kimlikleri oluşturduğumuzda yapıyorduk .
Benzer mantığın patch-id.c
içine geçelim , diff.c
böylece ' format-patch --base=
' komut çağırma türleri için yama kimlikleri oluştururken aynı karmayı elde edebiliriz .
Git 2.24'ten (4. Çeyrek 2019) önce " ", düzeltilmekte olan git format-patch -o <outdir>
" mkdir <outdir>
" değil " mkdir -p <outdir>
" eşdeğerini yaptı .
Bkz . Bert Wesarg ( ) tarafından edefc31 (11 Ekim 2019 ) . (Göre Birleştirilmiş Junio Cı Hamano - - içinde işlemek f1afbb0 , 18 Ekim 2019)bertwesarg
gitster
format-patch
: çıktı dizininin önde gelen bileşenlerini oluşturma
İmzalayan: Bert Wesarg
'git format-patch -o' düzeltilen 'mkdir -p' yerine 'mkdir' ile eşdeğerdir.
adjust_shared_perm
Güvenlikle ilgili sonuçları olabilecek önde gelen dizinlerde ' ' kullanımından kaçının . ' config.sharedRepository
' Beğen ' ' i geçici olarak devre dışı bırakarak ulaşır git init
.
Git 2.25 (Q1 2020) ile, " git rebase
" format.useAutoBase
düzeltilmiş yapılandırma değişkeni ayarlandığında iyi çalışmadı .
Bkz cae0bc0 işlemek , 945dc55 taahhüt , 700e006 işlemek , a749d01 işlemek , 0c47e06 taahhüt tarafından (2019 04 Ara) Denton Liu ( Denton-L
) .
(Göre Birleştirilmiş - Junio Cı Hamano gitster
- içinde 71a7de7 tamamlama 2019 16 Ara)
rebase
: format.useAutoBase
kırılmayı düzeltin
Raporlayan: Christian Biesinger
İmzalayan: Denton Liu
İle format.useAutoBase = true
, rebase'i çalıştırmak bir hatayla sonuçlandı:
fatal: failed to get upstream, if you want to record base commit automatically,
please use git branch --set-upstream-to to track a remote branch.
Or you could specify base commit by --base=<base-commit-id> manually
error:
git encountered an error while preparing the patches to replay
these revisions:
ede2467cdedc63784887b587a61c36b7850ebfac..d8f581194799ae29bf5fa72a98cbae98a1198b12
As a result, git cannot rebase them.
Bu etki her zaman --no-base
rebase'den format yamasına geçerek etkisinin format.useAutoBase
ortadan kalkmasını sağlayın.
git apply --stat file.patch
# istatistikleri göster.git apply --check file.patch
# uygulamadan önce hata olup olmadığını kontrol edin.git am < file.patch
# Sonunda yamayı uygulayın.