2009-03-08 22 views
39

Điều này có liên quan đến một tên khác question I asked gần đây.msysgit trên cửa sổ - tôi nên biết điều gì, nếu có?

Khi cài đặt msysgit, trình cài đặt trình bày 3 phương án liên quan đến đường dẫn hệ thống:

  1. Không bao giờ thay đổi cửa sổ môi trường. Với tùy chọn này, bạn phải sử dụng shell "bash" để làm việc với git.

  2. Thêm thư mục git \ bin vào biến môi trường PATH, nhưng không ghi đè một số công cụ windows được cài sẵn. Fellow stackoverflow-ian Gabe Moothart told me in a comment rằng tùy chọn này sẽ làm cho một số hoạt động git thất bại! Các hoạt động này là gì? Tôi có nên lo lắng về chúng?

  3. Tương tự như 2 nhưng ghi đè lên một số công cụ hệ thống mặc định. Những công cụ này là gì? Những phần nào của cửa sổ phụ thuộc vào chúng? và điều này sẽ bị tổn thương trong thực tế?

Một vấn đề khác đã đến với tâm trí của tôi, không liên quan đến hệ thống PATH.

Nếu tôi có liên kết tượng trưng và liên kết cứng bên trong thư mục dự án của tôi thì sao? Liệu git biết làm thế nào để đối phó với những? hoặc, nó sẽ bị đệ quy vô hạn, nếu nói, cấu trúc thư mục là như vậy mà một số thư mục đã thực sự là một liên kết tượng trưng cho một trong những cha mẹ của nó?

Trả lời

43

Bạn nhận được bash bất kể là tùy chọn mà bạn lựa chọn, các tùy chọn sau chỉ cần thêm các phương pháp cho việc sử dụng Git bên ngoài nó.

Đối với các tùy chọn sau, msysgit thêm của Windows xây dựng các tiện ích Linux phổ biến để PATH. Điều này bao gồm find, killsort, cũng như cp, ls, rm, và khoảng 20-30 người khác.

Sự cố với 3 (và tương tự) đầu tiên là chúng tồn tại trong cả hai hệ điều hành và chức năng khác nhau trong mỗi hệ điều hành.

Không phải là một thử thách lớn nếu bạn biết bạn sẽ sử dụng cái nào, nhưng bất kỳ ứng dụng nào phát triển mong đợi một và nhận được ứng dụng khác chắc chắn sẽ phù hợp.


Để ngăn chặn cuộc xung đột, trong khi vẫn có công việc Git như mong đợi, bạn có thể tạo một tập lệnh batch đơn giản mà điều chỉnh PATH chỉ dành cho phiên. (ví dụ: readygit.bat)

@echo off 
setlocal 
set PATH=C:\Git\bin;%PATH% 
cmd 

Điều chỉnh C:\Git\bin tương ứng. Nhưng, chỉ cần chạy điều này và sử dụng Git trong cmd.

Với điều này, bạn có thể sử dụng tùy chọn cài đặt 3 và xóa an toàn C:\Git\bin khỏi hệ thống PATH của hệ thống, xóa mọi nhầm lẫn cho ứng dụng Windows mà không gây nhầm lẫn Git.

Tôi hiện đang sử dụng tập lệnh tương tự với GnuWin ứng dụng, bao gồm find.

+2

Ngoài ra, hãy thêm 'xuất PATH = $ PATH:/c/mingw/bin:/c/mingw/msys/1.0/bin' vào'/etc/bash_profile' của Git Bash để truy cập vào MinGW từ trình bao của msysGit. – rpjohnst

3

Trên cửa sổ (điều này ít vấn đề trên các hệ thống khác, theo ý kiến ​​rất khiêm tốn của tôi ...), bạn phải nhận thức được vấn đề crlf và lưu ý rằng (Trừ khi họ đã thay đổi điều này trong phiên bản của Git, mà tôi tin rằng họ có thể có - hoặc nếu bạn đang sử dụng một phiên bản cũ của Git), autocrlf được kích hoạt theo mặc định, không giống như tất cả các cài đặt git khác. Cũng xin lưu ý rằng trừ khi bạn sử dụng phiên bản mới nhất của msysgit, sắp hết tuần này nếu tôi nhớ chính xác từ danh sách gửi thư, kích thước kho lưu trữ của bạn không thể lớn hơn 2GB, tổng cộng.

Ngoài ra, Windows hoàn toàn không phân biệt chữ hoa chữ thường nhưng/đôi khi/trường hợp bảo quản - hãy ghi nhớ điều đó! (Điều này không gây nhầm lẫn git không cần thiết - nhưng nó có thể và gây nhầm lẫn cho người dùng của repo git).

Cuối cùng, git chậm hơn đáng kể trên cửa sổ so với trên Linux, mặc dù đó là (trong kinh nghiệm hạn chế của tôi) nhanh hơn các lựa chọn thay thế.

Bây giờ, về con đường ...

Trừ khi tôi là nhầm lẫn, bạn nên có thể chỉ cần đảm bảo rằng các git nhị phân chính là trong đường dẫn - và sau đó nhị phân mà nên chăm sóc tham khảo khác git components ... Nhưng tôi chưa thử nghiệm điều này.

+2

AFAIK, Windows luôn bảo vệ trường hợp. Khi một tên là tất cả các mũ Windows Explorer cho thấy nó như là chữ thường, nhưng các tập tin được giữ như là trường hợp trên. – configurator

+0

Đó là sai, nhưng nó sẽ rất hữu ích nếu bạn tìm thấy bài viết hỗ trợ. :) – Arafangion

3

Trình cài đặt MSYS Git gợi ý tùy chọn 2 nếu bạn định chạy git từ dấu nhắc Cygwin. Môi trường Cygwin đảm bảo rằng các phụ thuộc git nằm trong PATH của bạn. Nếu bạn chọn tùy chọn này nhưng sau đó gọi git từ cửa sổ lệnh, tất cả các tiện ích dòng lệnh unix-y mà git dựa vào sẽ không được tìm thấy. IIRC, git chính nó là một phần thực hiện như kịch bản bash. Tôi không biết những hoạt động nào sẽ thất bại, nhưng tôi không nghĩ rằng git sẽ có thể sử dụng theo cách này.

Tôi không có danh sách các công cụ hệ thống tùy chọn ghi đè 3 (trình cài đặt đề cập đến find.exe) nhưng điều này sẽ chỉ ảnh hưởng đến bạn nếu bạn là một ninja tập lệnh. Tại dòng lệnh, find bây giờ sẽ chỉ đến tiện ích unix của tên đó, chứ không phải là exe đi kèm với các cửa sổ.Nó không gây hại cho cửa sổ theo bất kỳ cách nào.

Chỉ cần chạy bằng kéo và chọn tùy chọn 3 :-)

+0

Điều này sẽ ảnh hưởng đến non-batch-script-ninjas nếu họ sử dụng bất kỳ công cụ nào đi kèm với tập lệnh theo lô. Tôi đã sử dụng quá nhiều công cụ như thế này, có thể sẽ thất bại. – configurator

9

Bạn có thể muốn lưu ý rằng:

  • Tất cả các lệnh git không vẫn còn đó. Trên MSysGit1.6.2 đầu tháng Ba năm 2009:. Archimport, cvsexportcommit, cvsimport, cvsserver, filter-branch, instaweb, gửi-email, và vỏ)

  • Cho đến MSysGit1.6.2, git-svn là not there (it is now).
    Vấn đề là git-svn cần có các ràng buộc perl của subversion, và bạn chỉ có thể tạo chúng dưới dạng các mô-đun có thể nạp động. Và MSysGit có một phiên bản perl không hỗ trợ các mô-đun có thể nạp động.

  • Tất cả các chi tiết về MSysGit được giải thích tốt nhất trong họ MSysGitHerald Github wiki

0

Khi bạn sử dụng giao diện Windows trên cửa sổ và bạn tạo kho lưu trữ đầu tiên, không nhập tên ".git" cho thư mục lưu trữ. (Sau đó nó sẽ tạo ra, và sau đó tạo một cái khác.git thư mục bên dưới nó, khi bạn cuối cùng nghĩ rằng để tìm ở đó) Duyệt đến thư mục với các nguồn của bạn trong đó, và - chỉ cần chọn thư mục đó! Thư mục kho lưu trữ ".get" sẽ được tạo cho bạn.

Sau đó, bạn thấy các tệp trong các thay đổi chưa được chỉnh sửa và bằng cách nhấp vào các biểu tượng trang nhỏ bên cạnh tên tệp, hãy di chuyển chúng sang các thay đổi theo giai đoạn.

Và chắc chắn chạy bằng kéo và chọn tùy chọn 3. Không ai sử dụng giết, sắp xếp hoặc tìm thấy nữa từ dòng cửa sổ lệnh.

+0

hmm, điều này không liên quan gì đến msysgit trên windows (vì điều này cũng áp dụng cho linux). Tôi đã hỏi về những cách mà nó có thể gây trở ngại, hoặc nói cách khác là các công cụ hệ thống cửa sổ khác. – hasen

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