Tùy chọn có sử dụng Git và các công cụ Unix tùy chọn từ Lệnh Windows Prompt không nguy hiểm không?


11

Khi cài đặt Git, nó cung cấp tùy chọn để thêm tất cả các công cụ msys * nix của nó vào PATH của bạn, tuy nhiên, nó cảnh báo:

Cảnh báo: Điều này sẽ ghi đè các công cụ Windows như "find" và "sort". Chỉ sử dụng tùy chọn này nếu bạn hiểu ý nghĩa.

Câu hỏi của tôi là:

  • Những công cụ chính xác nó sẽ xung đột với?
  • Có vấn đề gì không? Có phải chúng thường được sử dụng bởi hệ thống? (Tôi chưa bao giờ sử dụng chúng cá nhân.)
  • Tôi có thể thay đổi thứ tự của các thư mục trong PATH để ngăn ngừa xung đột không?
  • Đây có phải là những gì tùy chọn thứ 2 không? ("Sử dụng Git từ Dấu nhắc lệnh của Windows - Tùy chọn này được coi là an toàn vì nó chỉ thêm một số trình bao bọc Git tối thiểu")

Câu trả lời:


4

Tôi đồng ý với phân tích chung của các câu trả lời khác và cũng không thể dự đoán chính xác loại xung đột nào bạn có thể gặp phải. Tôi biết tôi đã không nhận thấy bất cứ điều gì làm phiền bản thân mình trong lựa chọn thứ ba. Nhưng tôi có thể thêm một chút vào những gì các tùy chọn thực sự làm vào năm 2018.

Tôi đã thử nghiệm với một loạt các cấu hình cài đặt trong khi quyết định làm thế nào để đề xuất chuyển nhóm của tôi sang git, bao gồm các tùy chọn này. Đây là những gì tôi thực sự quan sát thấy việc cài đặt thực hiện theo đường dẫn của tôi, kể từ git cho Windows v2.19.1.

ảnh chụp màn hình của các tùy chọn cài đặt Git For Windows để cài đặt PATH

Chỉ sử dụng Git từ Git Bash

Như đã nêu, không có sửa đổi nào được thực hiện cho đường dẫn hệ thống của bạn. Nhập một đơn giản git statusvào dấu nhắc lệnh của Windows, cmd.exe, sẽ thất bại với 'git' is not recognized as an internal or external command, operable program or batch file.

Sử dụng Git từ Dấu nhắc lệnh của Windows

Tôi có thể thay đổi thứ tự của các thư mục trong PATH để ngăn ngừa xung đột không?

Đây có phải là những gì tùy chọn thứ 2 không? ("Sử dụng Git từ Dấu nhắc lệnh của Windows - Tùy chọn này được coi là an toàn vì nó chỉ thêm một số trình bao bọc Git tối thiểu")

Thay đổi thứ tự luôn là một lựa chọn cho bạn, nhưng không, lựa chọn thứ hai dường như không liên quan gì đến việc đặt hàng. (Bổ sung đường dẫn dường như đi đến cuối đường dẫn. Tôi hơi nghi ngờ điều này đã thay đổi tại một số điểm.) Đó là câu hỏi về thư mục nào được thêm vào đường dẫn và khác nhau giữa các tùy chọn thứ hai và thứ ba.

Khi nó nói rằng nó sẽ thêm các hàm bao Git "tối thiểu" vào PATH của bạn, những gì nó thực sự làm là thêm cmdthư mục cài đặt (sắp tới) vào đường dẫn. Đây là tùy chọn cuối cùng tôi đã đề xuất với nhóm của tôi. Bây giờ chúng ta có C:\Program Files\Git\cmdtrên con đường của chúng tôi.

Có gì trong cmdthư mục? Đối với tôi, chỉ có sáu tệp:

  • git.exe
  • git-gui.exe
  • gitk.exe
  • git-lfs.exe
  • start-ssh-agent.cmd
  • bắt đầu-ssh-pagete.cmd

Như với câu trả lời của Anaksunaman, tôi không chắc khi nào điều này là không đủ. Bất kỳ lệnh thông thường nào bắt đầu bằng git <some command>sẽ hoạt động từ sự bao gồm của git.exe.

Sử dụng Git và các công cụ Unix tùy chọn từ Dấu nhắc lệnh của Windows

Điều này bao gồm tùy chọn thứ hai thêm <Install dir>\Git\cmdvào đường dẫn, và cũng thêm <Install dir>\Git\mingw64\bin<Install dir>\Git\usr\binvào đường dẫn. Cả hai thư mục đều có số lượng thực thi đáng kể, bao gồm find, sort và kill như được đề cập trong các câu trả lời khác.

Thay vì liệt kê những gì có lẽ là vài trăm mục, tôi khuyến khích người dùng liên quan thực hiện tùy chọn hai, hoàn tất cài đặt và xem qua các thư mục đó. Nếu bạn hài lòng với rủi ro, việc tự thêm <Install dir>\Git\mingw64\bin<Install dir>\Git\usr\binvào đường dẫn của bạn sẽ tương đương với việc lấy lại cỗ máy thời gian và chọn tùy chọn thứ ba.


Vì các giả định và bối cảnh thay đổi qua nhiều năm, nên có thể hữu ích khi bắt đầu một câu trả lời mới cho câu hỏi bốn năm tuổi với "Đây là một viễn cảnh mới từ năm 2019 ..."
Christopher Hostage

1
Đây vẫn là câu hỏi hữu ích nhất về chủ đề này, vì vậy tôi nghĩ rằng nó có liên quan để nhận được câu trả lời bổ sung. Tôi đã thêm một năm, mặc dù tôi đã nghĩ rằng số phiên bản sẽ có cùng mục đích.
ojchase

7

Những công cụ chính xác nó sẽ xung đột với?

Cá nhân tôi không chắc chắn về một danh sách đầy đủ, nhưng câu hỏi StackOverflow này nói

"Điều này bao gồm tìm, giết và sắp xếp [...] Vấn đề với 3 đầu tiên (và tương tự) là chúng tồn tại trong cả hai hệ điều hành và hoạt động khác nhau trong mỗi hệ điều hành."

Chúng có thể không được bạn sử dụng thường xuyên nhưng đủ phổ biến để Git cảm thấy cần phải cảnh báo bạn về hành vi bất ngờ.

Thông thường, chúng có nhiều khả năng xuất hiện trong các chương trình của bên thứ ba (chủ yếu là các tập lệnh), vì vậy mức độ hiệu quả rất có thể phụ thuộc vào mức độ bạn sử dụng các chương trình dựa trên bất kỳ lệnh nào.

Đây có phải là những gì tùy chọn thứ 2 không? ("Sử dụng Git từ Dấu nhắc lệnh của Windows - Tùy chọn này được coi là an toàn vì nó chỉ thêm một số trình bao bọc Git tối thiểu")

Về cơ bản, nó cho phép bạn sử dụng Git từ dòng lệnh (cmd.exe) với tất cả các lệnh Git phổ biến. Tùy chọn này hoàn toàn an toàn và hữu ích cho 99% những gì bạn có thể muốn viết kịch bản hoặc thực hiện thủ công từ một dòng lệnh Windows. Tôi sử dụng tùy chọn này và chưa bao giờ cá nhân gặp phải bất kỳ vấn đề.

Sau khi cài đặt, bạn cũng có thể muốn xem giao diện git đồ họa (chẳng hạn như GitHub Dekstop cho Windows hoặc SourceTree ) và đừng quên rằng Git bash cũng đi kèm với cài đặt.


Trên thực tế, tôi muốn sử dụng một số công cụ từ CMD và tự hỏi liệu tùy chọn thứ 2 có làm cho bất kỳ công cụ unix nào khả dụng hay chỉ git.
Alexanderr Dubinsky

Theo hiểu biết của tôi, nó chỉ là git.
Anaksunaman

3

Những công cụ chính xác nó sẽ xung đột với?

Tôi sẽ để cài đặt sửa đổi PATH của bạn. Thật dễ dàng để loại bỏ nó khỏi PATH nếu bạn không muốn nó. Sau đó, tôi sẽ xem xét các thư mục và thực hiện một số so sánh như diff, comm, v.v. để tìm ra các xung đột. Chúng nên được ghi lại ở đâu đó mặc dù tôi không biết ở đâu.

Có vấn đề gì không? Có phải chúng thường được sử dụng bởi hệ thống? (Tôi chưa bao giờ sử dụng chúng cá nhân.)

Gần đây tôi không sử dụng các công cụ cygwin, nhưng khi tôi phải sử dụng Windows, tôi thường có thư mục công cụ cygwin đầu tiên trong PATH của mình mà không gặp vấn đề gì.

Rủi ro lớn nhất sẽ là nếu một chương trình đang tìm kiếm các công cụ dòng lệnh Windows xung đột, nó sẽ thực thi chương trình không chính xác. Tôi nghĩ rằng cơ hội của việc này là rất mong manh, khi xem xét số lượng kịch bản cmd.exe cực kỳ nhỏ đang diễn ra.

Tôi có thể thay đổi thứ tự của các thư mục trong PATH để ngăn ngừa xung đột không?

Đúng. Chỉ cần di chuyển cygwin, hoặc bất cứ điều gì gitthêm vào, đến cuối PATH. Chỉ cần nhớ rằng các chuỗi lệnh nhất định sẽ không hoạt động chính xác trong cygwin. Ngoài ra, nghĩ về nó, tôi nghĩ rằng bảng điều khiển cygwin thiết lập đường dẫn chính xác. Thiết lập đường dẫn của riêng bạn khi bạn sử dụng cygwin sau đó cũng sẽ khiến cygwin hoạt động chính xác.

Đây có phải là những gì tùy chọn thứ 2 không? ("Sử dụng Git từ Dấu nhắc lệnh của Windows - Tùy chọn này được coi là an toàn vì nó chỉ thêm một số trình bao bọc Git tối thiểu")

Có vẻ như điều này sẽ chèn vào PATH một thư mục chỉ chứa các lệnh git mà bạn cần sử dụng git.


Trên thực tế, git sử dụng MSYS thay vì Cygwin. Sự khác biệt là msys là win32 gốc, trong khi cygwin sử dụng thư viện mô phỏng để điều chỉnh mã posix.
Alexanderr Dubinsky
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.