[英]Git Bash operate with cygwin
我安裝了 Git-Bash,但無法訪問我可以通過 Cygwin 訪問的所有工具(vim、vimdiff)。 可以在 Git 配置文件之一中設置嗎?
Git bash 和 msysgit 包中的相關工具是純 Windows 可執行文件。
這就是為什么你不能在 Git bash 中運行 Cygwin 工具的原因,因為它們不是完全的 Windows 程序(它們需要cygwin.dll
,請參閱下面的@fvu 評論)。
如果要將 Git 與 Cygwin 工具一起使用,則必須為 Cygwin 安裝 git 包。
您可能只需要將 cygwin bin 目錄添加到 git bash 中的 $PATH 變量中。
盡管其他人似乎都認為他們知道,但 Git Bash 實際上幾乎是重新包裝的 Cygwin。 可視化: https : //github.com/msysgit/msys/tree/master/winsup/cygwin
如果您將 Cygwin bin
目錄添加到 git bash 中的$PATH
變量,請確保使用 Git 2.27(2020 年第二季度)。
通過run_command()
API 運行的實用程序在 Cygwin 上沒有正確生成,當它們的路徑作為帶反斜杠的完整路徑給出時。
請參閱Andras Kucsma ( r0mai
) 的commit 05ac858 (2020 年 3 月 27 日) 。
(由Junio C gitster
合並-- gitster
-- in commit d01b722 ,2020 年 4 月 22 日)
run-command
:在 Cygwin 上正確觸發 PATH 查找簽字人:安德拉斯·庫奇馬
在 Cygwin 上,類似 POSIX 系統的代碼路徑在
run-command.c
::start_command() 中。 調用prepare_cmd()
輔助函數來決定是否需要在 PATH 中查找命令。 當且僅當其中沒有任何斜杠“/”時,才執行 PATH 查找的邏輯。 如果此測試通過,我們最終會嘗試通過在 PATH 的每個以冒號分隔的組件之后附加字符串來運行命令。Cygwin 環境支持 Windows 和 POSIX 樣式路徑,因此正斜杠“/”和反斜杠“\\”都可以用作用戶提供的任何外部程序的目錄分隔符。
在 PATH 中錯誤搜索而不是按原樣執行的路徑字符串示例:
"C:\Program Files\some-program.exe" - "a\b\c.exe"
為了處理這些,
prepare_cmd()
的PATH
查找檢測邏輯被教導了解這個 Cygwin 怪癖,通過引入has_dir_sep(
path) 輔助函數來抽象出真正的 POSIX 和 Cygwin 系統之間的差異。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.