Bizim / onların magit bir dosyada nasıl kontrol edilir?


16

Diyelim ki bir birleşme çatışmam var. Bunun gibi çakışan bir dosya görüyorum:

Unstaged changes:
    Unmerged   Foo/bar/wibble/plop/elbow.txt

Değişiklikleri açmak için sekmeye basabilirim ve belki de elle düzeltmek için dosyanın içindeki bir noktaya atlayabilirim, ancak zaman alıcı olabilecek çok sayıda çakışma içeren büyük bir dosyaysa.

Git aracılığıyla magit aracılığıyla dosyanın bizimkinin sürümünü veya çakışmasını çözmesini nasıl isteyebilirim? Yolu kopyalayabilirim, sonra Shift-:özel bir git komutu girmek için kullanın, ancak bunun için bir klavye kısayolu olması gerektiği gibi görünüyor. Magit menüsünde veya ?pop- up'ta bariz bir şey göremiyorum .


3
Bu doğrudan sorunuza cevap vermese de yararlı olabilir. Çakışma dosyasındaki noktayı içeri taşıyın magit-statusve ile e3 yönlü birleştirme başlatmak için tuşuna basın ediff. Başka bir alternatif, bir çakışma arabelleğinde, smerge-modeçakışma vurgulaması için açabilmeniz ve doğrudan arabelleğinizde (ediff değil) etkileşimli birleştirme gerçekleştirebilmenizdir. smerge-modeİlgili komutlar için önek anahtar bağlama C-c ^; C-c ^ C-htüm tuş bağlantılarını görüntülemek için tuşuna basabilirsiniz .
Tu Do

Dokümanda da "bizimkini" ya da "onlarınkini" bulamıyorum. magit.github.io/master/magit.html#Pushing-and-Pulling
Ehvince

1
Özellik isteği açmak için iyi bir soru gibi mi görünüyor?
Ehvince

1
iyi fikir @Ehvince, bitti: github.com/magit/magit/issues/1643
tenpn

1
Oooh: Magit'in bir sonraki sürümünde bir konuyla ilgilenebilir kve hangi sürümü saklayacağınızı seçebilirsiniz. Kulağa mükemmel geliyor! github.com/magit/magit/issues/1643
tenpn

Yanıtlar:


16

Bu özelliğin ne zaman eklendiğinden emin değilim, ancak bunu mükemmel bir şekilde yapıyor:

  1. Bir dalı diğerine birleştir ve bir çatışmayla karşılaş
  2. Magit tamponu içinde, orada için bölümler olacak Merging masterve Unstaged changes, Staged changes. Çakışan dosyaUnstaged changes
  3. Çakışan dosyanın bulunduğu satırda k, değişiklikleri (ör. Çakışan değişiklikler) silmek için
  4. Minibuffer'da cevabı göreceksiniz:

For <conflicted file> checkout: [o]ur stage, [t]heir stage, [c]onflict, or [C-g] to abort


5

Birkaç çözüm var:

  • smerge-ediff kullanın. Çakışma içeren dosyada çalıştırın M-x smerge-ediff. Sizi ediff çözümleme moduna geçirir, dört açık arabellek ile: sizin, onlarınki, birleştirme ve komut arabelleği. Komut arabelleğinde, sonraki veya önceki iri parçaya gitmek için nve ptuşlarını, birinci veya ikinci tampondaki değişikliği kabul etmek için "a" veya "b" yi kullanırsınız veya birleştirme arabelleğine gidebilir ve isteğinize göre düzenleyebilirsiniz.
  • magit'ten ediff'i kullanın, magitin ekararlı sürümünde veya M-eveya M-m( magit-ediff-resolve) bir sonraki magit dalında kullanın ve sonra kendinizi çoğunlukla ilk durumda olduğu gibi bulacaksınız
  • Orada smerge modlu da, C-c ^ nve C-c ^ pdaha sonra düzenlemek onları, veya kullanım olabilir, bir önceki veya bir sonraki bir iri parça gidin yardımcı olacaktır C-c ^ o, 'öteki' sürümü tutmayı C-c ^ m'mayın' sürümü korumayı, C-c ^ beski tutmak için sürümü ve C-c ^ ahepsini tutmak için.
  • bir dosyayı bazı taahhütlerde olduğu gibi açmak için magit-find-dosyasını kullanabilirsiniz.

Tu Do'nun burada gönderdiğim cevabın çoğuna sahip olduğunu görmemiştim. Sory
Rémi

Kapsamlı liste için teşekkürler, ama "Ours veya Thiers sürümünü almak için özlü bir yolu var" cevabının hayır olduğunu tahmin ediyorum. :(
tenpn
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.