2012-02-22 30 views
63

tôi đã sử dụng để khởi động git gui trong Bảng điều khiển Cygwin của tôi mà không bất kỳ vấn đề nhưng kể từ khi tôi cập nhật Cygwin Tôi đã nhận được thông báo lỗi sau:Không thể khởi chạy git gui sử dụng Cygwin trên cửa sổ

$ git gui 
Application initialization failed: no display name and no $DISPLAY environment variable 
Error in startup script: invalid command name "tk_messageBox" 
    while executing 
"tk_messageBox -icon error -type ok -title "git-gui: fatal error" -message $err" 
    invoked from within 
"if {[catch {package require Tcl 8.4} err] 
|| [catch {package require Tk 8.4} err] 
} { 
     catch {wm withdraw .} 
     tk_messageBox \ 
       -icon error \ 
       -typ..." 
    (file "/usr/lib/git-core/git-gui" line 34) 

Bất cứ ai biết làm thế nào để giải quyết điều này?

+0

bạn có thể xem xét khởi chạy [Git cho Windows] (http://git-scm.com/download/win), cung cấp git gui, thay vào đó, sử dụng vỏ không phải Cygwin/msys riêng biệt. Bạn chỉ cần nhớ đường dẫn Cygwin/Windows của bạn để Cygwin không cố gắng sử dụng nó thay vì phiên bản Cygwin, mà có thể gây ra một số vấn đề. – AndrewD

Trả lời

119

Sửa: Mang đến ngày tháng 3 năm 2016 để giải thích cho các gói đổi tên, vv

gitk và git gui Cygwin của yêu cầu X11. Điều này có nghĩa là bạn cần phải cài đặt một số gói Cygwin X11 và thiết lập chúng để có thể mở GUI.

này sẽ giúp bạn lên và chạy:

  1. Chạy trình cài đặt Cygwin một lần nữa (tải về liên quan setup-*.exe một lần nữa nếu bạn cần).
  2. Ở danh sách gói, chọn cài đặt "xinit" trong danh mục X11. Nhấp vào tiếp theo, chấp nhận tất cả các phụ thuộc và cài đặt.
  3. Trong menu Bắt đầu của Windows, bạn nên có một nhóm mới: Cygwin-X. Từ đó, chạy XWin Server.
  4. Trong vỏ Cygwin của bạn, hãy chạy export DISPLAY=:0.0.

Bạn cần lặp lại bước 3 mỗi lần khởi động lại máy tính và bước 4 mỗi khi bạn mở vỏ Cygwin mới (hoặc chỉ chạy echo "export DISPLAY=:0.0" >>~/.profile để nó chạy tự động bất cứ khi nào bạn tạo trình bao mới).

Trong phần nhận xét, có vẻ như một số người đang gặp phải lỗi có nghĩa là 'không thể kết nối để hiển thị': 0.0 "'. Nếu bạn nhận được điều đó, di chuột qua X sẽ xuất hiện trong khay hệ thống của bạn (bạn có thể cần phải nhấp vào biểu tượng nhỏ nếu biểu tượng X bị ẩn); tiêu đề bật lên phải nói điều gì đó như "Cygwin/X Server: 1.0". Sử dụng ": 1.0" (hoặc bất kỳ thứ gì bạn thấy) làm giá trị cho DISPLAY ở bước 4, thay vì ": 0.0", đảm bảo bao gồm dấu hai chấm.

Nếu bạn có bất kỳ vấn đề nào khác bắt đầu từ máy chủ X, có thể bạn sẽ thấy tệp có tên là ~/.xsession-errors; kiểm tra nội dung của điều đó cho những gì đang xảy ra. Ngoài ra, hãy kiểm tra xem bạn có tệp ~/.startxwinrc không và thử xóa nó và xem liệu có khắc phục được sự cố hay không.

Vì lý do quan tâm, lý do gói X11 không được cài đặt tự động là chúng là not technically needed: có thể thông qua một số phương tiện phức tạp để sử dụng máy chủ X11 khác với máy chủ Cygwin cài đặt khi bạn cài đặt gói "xinit" .

+2

Giao diện không phải là những gì nó từng là nhưng ít nhất nó hoạt động trở lại. Cảm ơn! –

+4

@Stijn: Đồng ý. Tôi cũng thích giao diện cũ hơn (ít nhất là vì tôi có bố trí bàn phím Windows tùy chỉnh mà X11 không thể hiểu được). [Justification for the change] (http://cygwin.com/ml/cygwin/2012-02/msg00447.html) là Tcl/Tk (ngôn ngữ Git GUI và Gitk và vân vân chạy) đã chuyển sang X11 , vì vậy để tránh bị mắc kẹt với một Tcl/Tk lỗi thời, Cygwin đã phải thực hiện thay đổi tương tự. –

+0

Bạn nói đúng về “không cần thiết về mặt kỹ thuật”. Tôi biết những người thích (màu đỏ) sử dụng Exceed. (Tại sao? Tôi không biết ...) –

6
echo "export DISPLAY=:0.0" >>~/.profile 

hoặc

echo "export DISPLAY=:0.0" >>~/.bash_profile 

trong trường hợp của tôi

+0

.bashrc cũng hoạt động như một nét duyên dáng trong Cygwin/Win10 – ATorras

6

Tránh X11 và thêm git gui hỗ trợ cho Cygwin

Nếu bạn muốn tránh X11 (và những người sẽ không?):

  1. Cài đặt Git cho Windows (không Cygwin) http://git-scm.com/download/win
  2. mở vỏ lệnh của nó C:\Program Files (x86)\Git\Git Bash
  3. chạy git gui

(không bắt buộc) Nếu bạn muốn ở lại trong Cygwin để khởi chạy git gui, thêm chức năng vào ~/.bashrc của bạn để thực hiện. Chỉ báo trước là không đặt tên cho hàm git do đệ quy và nhầm lẫn với đối số và thực tế rằng bạn là Git cho Windows shell cũng có thể thêm cùng chức năng khi khởi động. Bạn cũng có thể gặp sự cố đường dẫn, vì vậy, hãy cẩn thận khi thiết lập đường dẫn chính xác.

# call git gui from Git For Windows path with `ggui` 
    gg() { 
    command "/cygdrive/c/Program Files (x86)/Git/bin/git" gui 2>/dev/null; 


    } 

Khi bạn chỉnh sửa xong .bashrc của bạn, làm mới các thiết lập của bạn:

source ~./bashrc 

và sau đó chỉ cần:

gg 
+0

Nếu bạn đặt tên cho hàm git-gui thay vì gg, nó sẽ mở ra khi bạn gõ lệnh 'git gui' - git sẽ dùng nó làm phần mở rộng. – configurator

9

Sau khi dành nhiều thời gian hơn tôi muốn chăm sóc phải thừa nhận , Tôi quản lý để tìm một giải pháp làm việc để thực hiện gitk từ vỏ Cygwin của tôi. Tôi không thể nhận được bất kỳ hướng dẫn nào khi khởi động máy chủ X để hoạt động đáng tin cậy và cuối cùng, giải pháp khá đơn giản.

Thông báo trước lớn nhất là cần phải cài đặt Git cho Windows, bạn có thể tìm tải xuống cho ứng dụng này here.

Bây giờ cho toàn bộ hoạt động gitk một phần. Git cho các cửa sổ bao gồm một thư mục cmd, có một tập tin lệnh gitk.cmd windows. Đó là tất cả những gì bạn cần gọi để mở gitk.

$ [path-to-git]/cmd/gitk.cmd 

Trên hệ thống của tôi con đường Git là trong "C: \ Program Files (x86) \ Git" do đó lệnh sẽ trông như thế này:

$ "/cygdrive/c/Program Files (x86)/Git/cmd/gitk.cmd" 

Trong tôi ~/.bash_profile tôi đã thêm một chức năng để xử lý rằng cuộc gọi đó trông như thế này:

gitk() { 
    "/cygdrive/c/Program Files (x86)/Git/cmd/gitk.cmd" 
} 

Hy vọng điều này sẽ giúp người khác cố gắng tìm mảnh này ra.

+0

Đây là một giải pháp tuyệt vời, cảm ơn rất nhiều. – Augustin

2

Sau khi làm theo 4 bước do me_and và tititou36 cung cấp, bạn vẫn có thể gặp sự cố XWin chỉ sau khi bạn khởi động XwinServer.

Lý do là nó dựa trên thiết bị đầu cuối/bảng điều khiển CygWin, máy chủ lưu trữ và Xwin chết nếu không có bảng điều khiển CygWin.

Giải pháp cho việc này là:

Bắt đầu bảng điều khiển Cygwin. (bạn có thể làm cho nó tự động bắt đầu bằng cách đặt lệnh mintty vào tệp .startxwinrc trong thư mục nhà Cygwin của bạn.

2

Đây là những gì làm việc cho tôi:

cat >> ~/.bash_profile <<< "export DISPLAY=:0.0"

Từ quản lý gói Cygwin, làm như sau:

cài đặt xorg-server và một số phông chữ xorg, xorg-x11-fonts-Type1 đặc biệt

Tiếp theo tạo liên kết đến các thư mục phông chữ của windows cho git gui để sử dụng

ln -s /cygdrive/c/Windows/Fonts /usr/share/fonts/win-fonts

Đóng nhà ga Cygwin và mở cửa trở lại sau đó gõ

startxwin &> /dev/null &

git gui &

0

Dựa trên câu trả lời AndrewD của: Sử dụng Cygwin của git, nhưng sử dụng Windows của Git gitkgit gui. Nói cách khác, gỡ cài đặt các gói git-gui và gitk khỏi cygwin (nếu được cài đặt). Sau đó, which gitk phải trỏ đến tệp Windows, không phải tệp nhị phân Cygwin trong /usr/bin.

Các vấn đề liên quan