2009-03-27 28 views
8

Sau khi di chuyển sang Windows, tôi đang sử dụng msysgit với vỏ bash được bao gồm và nó hoạt động tốt cho tôi. Nhưng tôi có vấn đề: quá trình xây dựng kiến ​​của chúng tôi sẽ không chạy trong trình bao đó, tôi muốn sử dụng xterms của Cygwin thay vì cửa sổ lệnh Windows, vì khả năng tương thích của thiết bị đầu cuối không đủ tốt để chạy mọi thứ khác mà tôi muốn cửa sổ đó, v.v.Tôi có thể sử dụng git của mSysGit và Cygwin không?

Tôi đã thực sự thực hiện việc gắn bó với msysgit trong vỏ lệnh Windows để tôi không phải sử dụng một cửa sổ riêng để xây dựng, nhưng thậm chí còn có nhiều vấn đề hơn: thiếu cd - và hoàn thành tệp đang giết chết tôi, hầu hết các lệnh tôi muốn gửi đến không có mặt, v.v.

Vì vậy, nếu tôi chuyển sang sử dụng git của Cygwin, hoặc tệ hơn, hãy sử dụng cả hai vào các thời điểm khác nhau, cắn tôi? Liệu git của Cygwin có mong đợi mọi thứ là \n và nghĩ rằng nó đang thay đổi vì mSysGit chuyển thành \r\n khi kiểm tra? Will Cygwin's git kiểm tra như \n và nhầm lẫn Windows Eclipse của tôi, mà tôi chắc chắn muốn mọi thứ là \r\n?

+3

Câu hỏi từ một bên quan tâm: bạn đã thử sử dụng MSYS git từ Cygwin chưa? Nếu vậy, nó có hoạt động không? Cảm ơn. – joce

+2

msysgit không phải từ Cygwin. Tôi đã tìm thấy tôi có thể sử dụng git của Cygwin và msysgit thay thế cho nhau, miễn là tôi cẩn thận với các cài đặt như core.autocrlf – skiphoppy

Trả lời

10

Cách tiếp cận đơn giản nhất là đặt bất kỳ git (msysGit hoặc Cygwin git) nào để bỏ qua các kiểu crlf.

core.autocrlf=false 

Bằng cách đó, bạn không có xung đột không mong muốn.

+0

Điều đó đã chỉ cho tôi đúng hướng, ngoại trừ tôi nghĩ rằng những gì tôi phải làm là đặt nó thành true từ Cygwin. Tôi phải giữ các terminators kiểu CRLF để tương thích với các ứng dụng windows khác, tôi nghĩ vậy. – skiphoppy

+0

Ứng dụng cửa sổ nào khác? Như Peter Boughton nói trong câu trả lời của mình, "Hầu hết các ứng dụng hiện đại (bao gồm cả Eclipse) là hoàn toàn có khả năng sử dụng \ n chỉ." – VonC

+0

Tôi thực sự đã gặp phải sự cố kết thúc bằng cách sử dụng các phiên bản khác nhau của msysGit. Cài đặt rõ ràng autocrlf đã sửa nó. –

3

Cygwin sẽ kiểm tra git khi \ n và nhầm lẫn Windows Eclipse của tôi, tôi là chắc chắn muốn mọi thứ trở thành \ r \ n?

Hầu hết các ứng dụng hiện đại (bao gồm Eclipse) hoàn toàn có khả năng chỉ sử dụng \ n.

Có một vài ngoại lệ gây phiền nhiễu (ví dụ: giao thức email), nhưng trong hầu hết các trường hợp, bạn có thể chỉ sử dụng \ n cho mọi thứ.

Vì vậy, như VonC nói, chỉ cần tắt cài đặt autocrlf và nó sẽ ổn.

+0

Trừ khi skiphoppy có một bối cảnh rất cụ thể kêu gọi sử dụng \ r \ n, tôi đồng ý với bạn. +1 – VonC

1

Thực ra, chỉ cần gắn bó với msysGit sẽ không giúp bạn tiết kiệm. Tôi đã có một vấn đề mà mỗi tập tin nguồn duy nhất cho thấy thay đổi vì vấn đề dòng kết thúc khi sử dụng các phiên bản khác nhau của msysGit. Thiết lập core.autocrlf trong tập tin cấu hình git đã sửa nó.

0

Tôi bị nhức đầu ở đầu dòng. Tôi đang sử dụng Cygwin git và nó luôn báo cáo một số tệp văn bản mới được kiểm tra là "đã sửa đổi". Khi tôi thay đổi "core.autocrlf" từ "true" thành "input" mười trong mười lăm tệp biến mất khỏi danh sách đã sửa đổi và 5 tệp còn lại đã biến mất sau khi tôi đặt "core.autocrlf" thành "false".

Tôi không thể bỏ phiếu cho giải pháp của VonC do danh tiếng thấp nhưng tôi cho rằng nó hoạt động đối với tôi.

0

Tôi đặt core.autocrlf thành false trong msysgit và đặt bất kỳ Cygwin nào được cài đặt theo mặc định.

Tôi gặp sự cố khi kiểm tra từ dấu nhắc lệnh bằng các công cụ Cygwin và các công cụ mingw được gửi bằng msysgit, vì thay đổi rõ ràng trong chế độ tệp (755 xuất hiện để thay đổi thành 644 trong mỗi tệp). Điều này dường như là một vấn đề liên quan đến bit thực thi. git reset không giúp được gì. Tuy nhiên, việc tạo bản sao ban đầu từ cửa sổ GUI của msysgit không tạo ra vấn đề này, và bây giờ tôi có thể sử dụng Cygwin hoặc từ bash shell hoặc dấu nhắc lệnh, hoặc msysgit từ bash shell của nó. Nói cách khác, mọi thứ có vẻ hạnh phúc. Vì vậy, nếu bạn thấy mọi tập tin xuất hiện để thay đổi và kết thúc dòng không phải là nguyên nhân của vấn đề, hãy thử kiểm tra từ GUI.

0

Sau khi gỡ lỗi này một lúc, tôi đã giải quyết nó cho trường hợp của mình. Tôi đã sao chép tệp id_rsa từ một phân vùng Linux theo cách đường vòng để lại kết thúc dòng trong định dạng LF (Unix). Mở tập tin trong nhật thực và chuyển đổi các dòng kết thúc sang Windows đã sửa lỗi này. Ngoài ra, tôi đã đặt GIT_SSH thành Plink (từ Putty) theo các hướng dẫn sau: http://www.mainelydesign.com/blog/view/git-plink-for-ssh-on-windows

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