“Diff” komutuyla paranın karşılığını en iyi nasıl alabilirim?


9

diffGeçmişte linux komutunu çok şans ve sabır olmadan kullanmayı denedim . Genellikle DiffMerge veya Kdiff gibi bir GUI yardımcı programı kullanarak sonuçlanır.

Son zamanlarda diffuzak sistemlerde dosyaları ssh ile karşılaştırmak için tekrar kullanmaya başladım ve -y / --side-by-sideçok kullanışlı bir seçenek buldum , ama yine de bu yardımcı programın çoğunu yapmıyorum gibi hissediyorum.

Bu yüzden aşağıdaki şeyleri nasıl başaracağımı merak ediyorum:

  1. Çıktıyı daha okunabilir hale getirmek için değişiklikleri vurgulayın veya renk kodlaması kullanın
  2. Birleştir - Farklılıklara sahip satırları seçin ve değişiklikleri dosyalardan birinde etkileyin

Ayrıca, googling yaparken çok iyi örnekler bulamadım, bu yüzden farktan en iyi şekilde yararlanmak için bazı linux-fu sırlarınız varsa, lütfen paylaşır mısınız? Ben esas olarak metin tabanlı yapılandırma dosyalarını karşılaştıracağım ama hileler ve ipuçları harika olurdu.

Referans için - DiffMerge yardımcı programı değişiklikleri renk vurgulamasıyla kolayca yan yana gösterir. Üstteki simgeler "tümünü göster", "farklılıkları göster" ve "bağlamla farklılıkları göster" görünümleri arasında geçiş yapmanıza olanak tanır. Komut isteminde bu işlevlerden bazılarını isterdim.

ps: Ayrıca oldukça yararlı bulduğum bir diğer seçenek de --suppress-common-linesbu kısa ve okunabilir blog yazısı hakkında öğrendim olduğunu belirtmek gerekir .


3
Vimdiff'i biraz kullanıyorum.
nicerobot

@nicerobot Bunu bir cevap olarak gönderebilirsiniz - çok yararlı ve yararlı bir araçtır.
rozcietrzewiacz

Yapamazsın, Özgür ..... Üzgünüm Yardım
edemedim

Farkımın çoğunu Emacs'ta yapıyorum.
Gilles 'SO- kötü olmayı bırak'

@whoami - ne?
cwd

Yanıtlar:


9

Belirli bir sırayla:

  • meld çok güzel diffs ve üç yönlü birleştirme yapan çok güzel bir fark programıdır.
  • git config --global merge.conflictstyle diff3gibi araçlarla kullanmak için size üç yönlü birleştirme çıktısı sağlar meld.
  • wdiffdoes kelimesi ise diffs, çok güzel renkli :wdiff -w "$(tput bold;tput setaf 1)" -x "$(tput sgr0)" -y "$(tput bold;tput setaf 2)" -z "$(tput sgr0)" ...
  • diffÇıktıdaki dalgalanmayı en aza indirmek için genellikle --ignore-all-space( -w) seçeneğini kullanırım
  • diff-ignore-moved-lines* etikette söylediklerini yapar.
  • difff* yalnızca belirli alanlarda eşleşen çizgileri ayırmak için kullanılabilir.

* Feragatname: Ben yazarım ve CLI ve GUI farklılaşma ve birleştirme konusunda yardımcı olmak için bunları geliştirdim.


1
Ben de diffusebiraz kullanıyorum.
Arcege

diff -u da oldukça basittir.
gabe.


3

Farkı renklendirmek için http://colordiff.sourceforge.net/ adresine bakmalısınız . Bu sadece diff etrafında bir sarıcıdır ve bu nedenle, tüm komut seçenekleri hala çalışır.

Ubuntu'nuz varsa sadece şunu yazın:

    # sudo apt-get install colordiff

Sizin kullanım örneğini yerine getirememe riskini Koşu, gitbir çok güzel VCS o bütünleştirir iyi olan birçok Diffing ve birleştirme araçları (hem komut satırı ve GUI olanları). Bir seçenek olup olmadığını deneyin.


1

Deneyin sdiff

diffayrıca birleştirme komut dosyası oluşturmak için seçenekler ( -eveya -ed) içerir.ed

sdiff, diffVe edhiç gitmek kabuğundan parçası olmalıdır.

Sürüm kontrol yazılımınızda muhtemelen yerleşik bir diffve mergearacı vardır.

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.