Windows'ta git diff neden "terminalin tam olarak işlevsel olmadığı" konusunda uyarıyor?


111

Windows'ta msysgit 1.7.7.1 kullanıyorum . Kullanırken bir hata alıyorum git diff. Buna ne sebep oluyor? Msysgit'te herhangi bir diff aracı yok mu? Ne yapmalıyım?

UYARI: terminal tam olarak işlevsel değil



Tamam, iyi msysgit git kullanıyor, bu bir tür adın içinde. Ben de bunu msys ile takip ettim ve işe yaradı! Açıklamayı iyi biçimlendirilmiş bir yanıtla paylaşın ki size biraz temsilci verebileyim!
Portaljacker

powershell çalıştırmada: $ env: Term = "xterm"
Anton Soradoi

Yanıtlar:


62

Git Bash için bu, aşağıdaki satırı ~ / .bashrc'ye ekleyerek düzeltilebilir:

export TERM=cygwin

-veya-

export TERM=msys

Birincisi Windows için git'in orijinali gibi görünüyor, ikincisi de "iyileştirmek" için bilinen popüler bir form.

Sorun, başka bir programın (örneğin Strawberry Perl ) TERMsistem ortam değişkenlerini ayarlaması durumunda ortaya çıkabilir .

http://code.google.com/p/msysgit/issues/detail?id=184


Evet, ancak git için dosya ağacında böyle bir dosya yok. Diğer cevap işe yaradı ve mantıklıydı.
Portaljacker

1
@Portaljacker - Ne işe yaradı? Git bash'ı kapatın, tekrar açın ve hala çalışıp çalışmadığına bakın.
manojlds

4
Evet, ortam değişkenini set veya GUI (diğer yanıtta gösterildiği gibi gelişmiş ayarlar) aracılığıyla ayarlamak, pencerelerde gitmenin yoludur.
cgp

11
Bu cevap tatmin edici değil çünkü OP, bash kullandığını söylemedi ve git'in bash'den çalıştırılması gerekliliği yok. Şahsen Windows Komut İstemi'ni kullanıyorum ve bu ortam için çalışan bir çözüm istiyorum.
David Grayson

7
@DavidGrayson Thread necro, biliyorum, ancak aynısını kullanarak Windows Komut İstemi'nde de yapabilirsiniz setx TERM msys. SETX(sadece SET yerine) env değişkenini kayıt defterine yazar.
rossipedia

184

Örneğin cmd.exe'de sorun yaşıyorsanız, buradaki uyarıya bakın:

TERM doğru ayarlanmadan CMD.EXE

Ardından, ortam değişkenlerinizi ayarlayın ve TERM = msys ekleyin. Bundan sonra, bir cmd.exe'yi her açtığınızda, değişkeniniz doğru şekilde ayarlanacaktır.

TERM ortam değişkeninizi nasıl ayarlayabilirsiniz?

ARTIK KABUĞUNUZU (CMD.EXE) YENİDEN BAŞLATMALISINIZ. Sadece yeni bir tane çalıştırın. Ve oradan, daha fazla sorununuz olmamalı. Tekrar:

Doğru TERM kümesine sahip CMD.EXE


Evet, kesinlikle öyle. Ben manzarayım ve bu tamamen çözdü. Teşekkürler teleball!
J Cole Morrison

2
Bu sorun bu mesajı gelen ya da ne geliyor herhangi bir fikir vasıtası ?
Anthony Mastrean

7
@AnthonyMastrean, terminalin terminal penceresinde farklı konumlara yazmayı desteklemediği anlamına gelir. Git diff, imleci her seferinde doğru yere getirmek için bir milyon geri boşluk bırakmadan pencerenin her yerine yazmak istiyor, örneğin bir sonraki ekranı yazmak istiyor.
jwg

Programlar değiştirilmediğinden, gerçek sorun uçbirim desteği değildir, @manojlds'in belirttiği gibi TERM değişkenini bazı temel terim olarak tanımlayan diğer program tarafından aptalca git (tam olarak daha az) olmuştur.
albfan

2
Vagrant kullanıyorsanız, bu düzeltme, bash kabuğunda sorunlara neden olur. Örneğin nano artık çalışmayacak ve hata veriyor: 'msys': bilinmeyen terminal türü
Sirrah

16

Yukarıdaki cevaplar benim için tam olarak işe yaramadı, ben de yaptım:

export TERM=msys 

üstteki " [githome] / etc / profile " olarak ayarlandı ancak yalnızca git bash için değişiklikler yaptı. Sonra ekledim

@set TERM=msys

@setlocal'dan sonra " [githome] /cmd/git.cmd " ye (komut satırından sadece git run yükledim). Bu karar gerçekten iyi olmayabilir ama benim için işe yarıyor ve herhangi bir ölümcül uyarı yok. (Git 1.7.10.msysgit.1 sürümünü kullanıyorum).


2
Windows için, sadece TERM ortam değişkenini msys olarak ayarlamam gerekiyordu, bu SETX ile yapılabilir.
cgp

14

Cevap bulunabilir burada , hangi çözüm iddiaların yazarı olun:

ortam değişkeni TERMşu şekilde ayarlandı:dumb

bunun yerine

TERM=cygwin

Bunu değiştirebilirsin

TERM=msys

eldeki sorunu çözmek için.


Bu cevabın sadece mevcut gitbash oturumu için işe yaradığı ortaya çıktı, onu diğer cevaba değiştirmek zorunda kaldı.
Portaljacker

6

Powershell'de çalışıyorum ve git çalıştırılabilir dosyası doğrudan yolumda var.

Önerilen yanıtların hiçbiri işe yaramadı, ancak benim için işe yarayan bir çözüm buldum.

Powershell profilime bir satır ekledim:

$env:TERM="msys"

Bu benim için sorunu çözdü.


Bu, 1.7.11.msysgit.1 git sürümünü kullandığımda artık benim için bir sorun gibi görünmüyor. $ Env: TERM = "msys" öğesini kaldırabildim ve mercurial'deki renk uzantısını sorunsuz bir şekilde yeniden etkinleştirebildim.
John Weldon

Farklı terminaller kullanan diğer uygulamalarla uyuşmazlık, buradaki ortam değişkenini değiştirmek yerine, manojlds'in cevabını takip etmeniz ve TERM'i Git Bash'in kendi .bashrc'sinde ayarlamanızın nedenidir, bu tüm programları etkileyecektir.
jwg

1
@jwg iyi bir nokta, ama git'i her zaman kullanıyorum ve powershell'i bash yapmak için tercih ediyorum, bu yüzden sadece renkli çıktı almak için bash çalıştırmak zorunda kalmak benim için fazla oldu.
John Weldon

Bunu genel powershell profilim yerine cmder profilime ekledim..ps1 dosyam.
gerrard00

6

Benim durumumda hızlı ve kirli bir çözüm --no-pagerseçeneği kullanmak oldu .

Varsayılan olarak, bazı git komutları (gibi log) lessçıktının uzun olmasını beklerlermiş gibi bir çağrı cihazı kullanır . Çağrı cihazları, ok tuşlarıyla metni yukarı ve aşağı kaydırmak gibi şeyler gerektirir; bu, ne tür bir terminalde olduğunuza ilişkin varsayımlar yanlışsa bazen işe yaramaz ("tam olarak işlevsel olmayan" budur).

Önceden çıktınızın kısa olacağını biliyorsanız veya yalnızca çıktıyı terminale dökmesini ve kaydırmayı terminal programınıza bırakmasını istiyorsanız, bunu geçersiz kılabilir ve bir çağrı cihazı kullanamazsınız, örneğin:

git --no-pager log

0

Durumda birileri ayarını kontrol Git Uzantıları'ndan bu fırlatma bash alır Path to linux tools.... Benimki ayarlandı C:\cygwin. C:\Program Files (x86)\Git\bin\Benim için düzeltmek için değiştiriyorum . Bash'ı bu şekilde başlatmak için TERM değişkenini ayarlamam gerekmedi.

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.