Apakah opsi "Gunakan Git dan alat Unix opsional dari Prompt Perintah Windows" berbahaya?

11

Saat menginstal Git, ia menawarkan opsi untuk menambahkan semua alat msys * nix ke PATH Anda, namun memperingatkan:

Peringatan: Ini akan menimpa alat Windows seperti "find" dan "sort". Gunakan opsi ini hanya jika Anda memahami implikasinya.

Pertanyaan saya adalah:

  • Alat mana yang justru akan bertentangan dengannya?
  • Apakah itu penting? Apakah mereka biasa digunakan oleh sistem? (Saya tidak pernah menggunakannya secara pribadi.)
  • Bisakah saya mengubah urutan direktori di PATH untuk mencegah konflik?
  • Apakah ini yang dilakukan opsi ke-2? ("Gunakan Git dari Prompt Perintah Windows - Opsi ini dianggap aman karena hanya menambahkan beberapa pembungkus Git minimal")
Aleksandr Dubinsky
sumber

Jawaban:

4

Saya setuju dengan analisis umum jawaban lain dan saya juga tidak dapat memprediksi dengan tepat konflik macam apa yang bisa Anda hadapi. Saya tahu saya belum menyadari ada sesuatu yang salah dengan mengambil pilihan ketiga. Tapi saya bisa menambahkan sedikit pada apa yang sebenarnya dilakukan opsi pada 2018.

Saya bereksperimen dengan berbagai konfigurasi instalasi sambil memutuskan bagaimana menyarankan transisi tim saya ke git, termasuk opsi-opsi ini. Inilah yang sebenarnya saya amati instalasi lakukan untuk jalur saya, pada git untuk Windows v2.19.1.

tangkapan layar dari opsi instalasi Git Untuk Windows untuk mengatur PATH

Gunakan Git hanya dari Git Bash

Seperti yang dinyatakan, tidak ada modifikasi yang dilakukan pada jalur sistem Anda. Memasukkan sederhana git statuspada prompt perintah Windows, cmd.exe, akan gagal dengan 'git' is not recognized as an internal or external command, operable program or batch file.

Gunakan Git dari Prompt Perintah Windows

Bisakah saya mengubah urutan direktori di PATH untuk mencegah konflik?

Apakah ini yang dilakukan opsi ke-2? ("Gunakan Git dari Prompt Perintah Windows - Opsi ini dianggap aman karena hanya menambahkan beberapa pembungkus Git minimal")

Mengubah pesanan selalu menjadi pilihan bagi Anda, tetapi tidak, pilihan kedua tampaknya tidak ada hubungannya dengan pemesanan. (Penambahan path tampaknya menuju ujung jalan terlepas. Saya agak curiga ini berubah di beberapa titik.) Ini pertanyaan tentang direktori mana yang ditambahkan ke path, dan berbeda antara opsi kedua dan ketiga.

Ketika dikatakan akan menambahkan "minimal" pembungkus Git ke PATH Anda, yang tampaknya dilakukan adalah menambahkan cmdfolder instalasi (yang akan datang) ke path. Ini adalah opsi yang akhirnya saya sarankan ke tim saya. Kami sekarang ada C:\Program Files\Git\cmddi jalur kami.

Apa yang ada di cmddirektori? Bagi saya, hanya enam file:

  • git.exe
  • git-gui.exe
  • gitk.exe
  • git-lfs.exe
  • start-ssh-agent.cmd
  • start-ssh-pageant.cmd

Seperti jawaban Anaksunaman, saya tidak yakin kapan ini tidak cukup. Setiap perintah normal yang dimulai dengan git <some command>akan berfungsi dari penyertaan git.exe.

Gunakan Git dan alat Unix opsional dari Prompt Perintah Windows

Ini termasuk opsi kedua yang menambahkan <Install dir>\Git\cmdpath, dan juga menambahkan <Install dir>\Git\mingw64\bindan <Install dir>\Git\usr\binpath. Kedua direktori memiliki sejumlah besar file executable, termasuk find, sortir, dan kill sebagaimana disebutkan dalam jawaban lain.

Daripada daftar apa yang mungkin beberapa ratus item, saya mendorong pengguna yang bersangkutan untuk mengambil opsi dua, menyelesaikan instalasi, dan melihat-lihat direktori tersebut. Jika Anda puas dengan risikonya, menambahkan <Install dir>\Git\mingw64\bindan <Install dir>\Git\usr\binke jalur Anda sendiri akan sama dengan mengambil mesin waktu kembali dan memilih opsi ketiga.

ojchase
sumber
Karena asumsi dan konteks berubah selama bertahun-tahun, mungkin berguna untuk memulai jawaban baru untuk pertanyaan empat tahun dengan "Ini adalah perspektif baru dari 2019 ..."
Christopher Hostage
1
Ini masih pertanyaan paling berguna tentang topik ini, jadi saya pikir relevan untuk menerima jawaban tambahan. Saya telah menambahkan satu tahun, meskipun saya akan berpikir nomor versi akan memenuhi tujuan yang sama.
ojchase
7

Alat mana yang justru akan bertentangan dengannya?

Secara pribadi saya tidak yakin daftar lengkap, tetapi pertanyaan StackOverflow ini mengatakan

"Ini termasuk menemukan, membunuh, dan mengurutkan [...] Masalah dengan 3 pertama (dan serupa) adalah mereka ada di kedua OS dan fungsinya berbeda di masing-masing."

Mereka mungkin tidak sering digunakan oleh Anda tetapi cukup umum sehingga Git merasa perlu untuk memperingatkan Anda tentang perilaku yang tidak terduga.

Secara anekdot, mereka lebih cenderung muncul di program pihak ketiga (kebanyakan skrip), sehingga tingkat efek yang paling mungkin tergantung pada seberapa banyak Anda menggunakan program yang mengandalkan salah satu dari perintah itu.

Apakah ini yang dilakukan opsi ke-2? ("Gunakan Git dari Prompt Perintah Windows - Opsi ini dianggap aman karena hanya menambahkan beberapa pembungkus Git minimal")

Pada dasarnya itu memungkinkan Anda untuk menggunakan Git dari baris perintah (cmd.exe) dengan semua perintah Git yang umum. Opsi ini sangat aman dan berguna untuk 99% dari apa yang Anda mungkin ingin skrip atau implementasikan secara manual dari baris perintah Windows. Saya menggunakan opsi ini dan tidak pernah mengalami masalah pribadi.

Setelah Anda menginstal, Anda mungkin juga ingin melihat antarmuka git grafis (seperti GitHub Dekstop untuk Windows atau SourceTree ) dan jangan lupa bahwa Git bash hadir dengan instalasi juga.

Anaksunaman
sumber
Sebenarnya, saya ingin menggunakan beberapa alat dari CMD, dan bertanya-tanya apakah opsi ke-2 membuat salah satu alat unix tersedia atau hanya git.
Aleksandr Dubinsky
Setahu saya, itu hanya git.
Anaksunaman
3

Alat mana yang justru akan bertentangan dengannya?

Saya akan membiarkan instalasi memodifikasi PATH Anda. Mudah untuk menghapusnya dari PATH jika Anda tidak menginginkannya. Kemudian saya akan melihat direktori dan melakukan perbandingan seperti diff, comm, dll untuk mengetahui konflik. Mereka harus didokumentasikan di suatu tempat meskipun saya tidak tahu di mana.

Apakah itu penting? Apakah mereka biasa digunakan oleh sistem? (Saya tidak pernah menggunakannya secara pribadi.)

Saya belum menggunakan alat cygwin belakangan ini, tetapi ketika saya harus menggunakan Windows, saya biasanya memiliki direktori alat cygwin pertama di PATH saya tanpa masalah.

Risiko terbesar adalah jika suatu program mencari alat baris perintah Windows yang saling bertentangan, itu akan mengeksekusi program yang salah. Saya pikir kemungkinan ini sangat tipis, mengingat jumlah skrip cmd.exe yang sangat kecil.

Bisakah saya mengubah urutan direktori di PATH untuk mencegah konflik?

Iya. Cukup pindahkan cygwin, atau apa pun yang gitditambahkan, ke akhir PATH. Ingatlah bahwa urutan perintah tertentu tidak akan berfungsi dengan benar di cygwin. Juga, kalau dipikir-pikir itu, saya pikir konsol cygwin mengatur jalan dengan benar. Menyiapkan jalur Anda sendiri saat menggunakan cygwin akan membuat cygwin beroperasi dengan benar juga.

Apakah ini yang dilakukan opsi ke-2? ("Gunakan Git dari Prompt Perintah Windows - Opsi ini dianggap aman karena hanya menambahkan beberapa pembungkus Git minimal")

Kedengarannya seolah ini akan menyisipkan ke PATH direktori yang hanya berisi perintah git yang perlu Anda gunakan git.

RobertL
sumber
Sebenarnya, git menggunakan MSYS bukan Cygwin. Perbedaannya adalah bahwa msys adalah win32 asli, sedangkan cygwin menggunakan pustaka emulasi untuk mengadaptasi kode posix.
Aleksandr Dubinsky