Neden daha az git gereksiz yere koşuyor?


22

Çalıştırdığımda git branch(bash veya csh), otomatik olarak çıktıyı iletiyor less. Ancak, depodaki sadece birkaç şubeyle bu gereksizin ötesinde, sinir bozucu, şube listesi daha az istifa ettiğimde ortadan kalkıyor.

~/.gitconfigDosyayı ve yerel .git/configdosyaları kontrol etmek , çağrı cihazı ya da buna neden olabilecek herhangi bir şey hakkında hiçbir şey bulamaz. Aksi takdirde, web aramalarında bulduğum hiçbir şey yardımcı olmadı veya umut verici olmadı.

Bu neden oluyor ve ne zaman (bir şey varsa) lessgerektiğinde (örneğin git logçok fazla tarih varken) yaparken başka türlü ( git branchsadece 2 veya 3 dalda olduğu gibi) çalıştırmak için ne yapabilirim?


4
Genel olarak git, herhangi bir komuttan ne kadar çıktı alınacağını bilmediğinden, varsayılan olarak her şeyi varsayılan olarak bir çağrı cihazıyla gönderir, bu muhtemelen daha az olacaktır.
icarus

6
Yeni -nix yüklemesinde ilk şey do koymaktır export LESS=-Xiçinde .profile. Bu , ekranı "temizlemekten" daha az tutar . Ben nefret sık sık kesilen gerekiyor ve malzeme yapıştırın veya bir referans olarak kullanabilirsiniz, çünkü standart ayar ekranını temizler o kadar.
Peter - Monica,

3
@Peter (Net olması amaçlanmayan) açık olması için, yalnızca ekran temizleme davranışını istemeyen insanlar bunu yapmalıdır.
David Z,

@icarus: Bu mantıklı görünüyor. Ancak, benimkilerin davranışları son zamanlarda değişti. Neden olduğundan emin değilim - muhtemelen, herkesin işini ne kadar zorlaştırdığı umrunda değil de, "yüksek" kurumsal güvenlik görevlilerinden zorlanan bir çevre değişkeninde bir değişiklik. Her neyse, git, aniden, daha az durduğumda, çıktının kaybedileceği şekilde, tek sıralı çıktıları çalıştırmaya duyarlı davranış olarak düşündüğüm şeyden daha az gitti.
GreenMatt

Eğer davranış yakın zamanda değiştiyse, en azından LESS değişkeninin bir ayarının sistem genelindeki kabuk başlangıç ​​dosyalarına eklenmesi mümkündür, örneğin / etc / profile, /etc/profile.d/*, /etc/bash.bashrc, Ortamınızda bu değişken var mı?
icarus

Yanıtlar:


35

Aşağıdakileri ayarlayabilirsiniz:

git config --global core.pager 'less -FRX'

Bu sağlayacak lessolacaktır

  • Dosyanın tamamı ilk ekranda gösteriliyorsa çıkın ( F).
  • Terminal biçimlendirmesi için ham kontrol karakterlerini ( R) çıktı
  • Uzun çizgileri doğra ( S)
  • İnit / de-init dizelerini terminale göndermeyin - ekranın çıkışta temizlemesini önler ( X)

Düzenleme: SPeter A. Scheider'in yorumuna dayanan seçenek kaldırıldı


7
ve --globalyalnızca geçerli depoya uygulanmasını istiyorsanız , atlayın .
mosvy

8
Ortam değişkeni ayarlama LESSiçin -FR, tadı X ve S ekleyerek başka bir yoludur.
icarus


11
Büyük olasılıkla OP bu davranışı genel olarak rahatsız edici buluyor; Sanırım çevre değişkenini ayarlayabilir export PAGER='less -FRSX've git onurlandırırdı (belirli bir git config yok). BTW -Stehlikelidir çünkü çıkışı sessizce atar.
Peter - Monica,

4

lessTuning'in davranışına dair bazı büyük cevaplar var , ancak gri saçlı parmaklarım |moreistediğim zaman yazmaya alışkın olduğundan ve hala mercurial ile uyumlu olduğum için git istemediğim için

git config --global core.pager cat

3
Man sayfası git-config, değerinin core.pagerkabuk tarafından yorumlanmasının amaçlandığını belirtir . Ayarladığınızda , büyük olasılıkla varolmayan nokomutu yerine getirmeye çalışır no, daha sonra içeriği basitçe çıkarmaya geri döner. Yine de başında bir hata mesajı göreceksiniz. Muhtemelen yapmak istediğin şey, onun catyerine koymak .
QIS

1
Bu iyi bir bilgi parçası, ama sevdiğim şey hiçbir şey yapmaması . catYararsız olduğunu ve özellikle değil (karşılaştırınız gelmez Ne kedi değişikliğine maintainers'ı util Linux güvenmiyorum alıntı dosyalar fiyaskosu ). Belki de "hiç yapma" yı kullanmalıyım. Böyle bir programın mevcut olması daha az olasıdır. ls
dgc

7
Ayar core.pagerboş bir dizeye ( git config core.pager '') veya catolacaktır değil hiç bir şey çalıştırın. Bana inanmıyorsan, kendin çözebilirsin ;-) Gibi bir aptal yerine koymak için hiçbir sebep yoktur no.
mosvy

Çok teşekkürler! Boş dizginin komut çalıştırılmasına neden olacağı hakkında hiçbir fikrim yoktu. Gelince catyani -, sen git çağrı cihazı kodunda bu dizi için özel bir durum olduğunu dile getiriyorlar catetkin bir "boş" eş anlamlıdır? Yürütmesini beklerdim cat.
dgc

Bu gerçekten böyle görünüyor. Egads. Ama aynı zamanda iyi: Her zaman gitme konusundaki isteksizliğimi haklı çıkarmak için daha fazla yol arıyorum.
dgc
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.