[英]How can I set up an editor to work with Git on Windows?
我正在Windows 上試用 Git 。 我到了嘗試“git commit”的地步,但出現了這個錯誤:
終端是啞的,但沒有定義 VISUAL 或 EDITOR。 請使用 -m 或 -F 選項提供消息。
所以我發現我需要一個名為 EDITOR 的環境變量。 沒問題。 我將其設置為指向記事本。 這幾乎奏效了。 默認提交消息在記事本中打開。 但記事本不支持裸換行。 我出去拿了Notepad++ ,但我不知道如何將 Notepad++ 設置為%EDITOR%
,以便它可以按預期與 Git 一起使用。
我沒有嫁給記事本++。 在這一點上,我不介意我使用什么編輯器。 我只想能夠在編輯器而不是命令行(使用-m
)中輸入提交消息。
那些在 Windows 上使用 Git 的人:您使用什么工具來編輯您的提交消息,您需要做什么才能使其工作?
2015 年 9 月更新(6 年后)
git-for-Windows (2.5.3)的最新版本現在包括:
通過配置
git config core.editor notepad
,用戶現在可以使用notepad.exe
作為他們的默認編輯器。
配置git config format.commitMessageColumns 72
將由記事本包裝器拾取並在用戶編輯提交消息后換行。
請參閱Johannes Schindelin ( dscho
) 的commit 69b301b 。
並且 Git 2.16(2018 年第一季度)將顯示一條消息,告訴用戶它在生成編輯器時正在等待用戶完成編輯,以防編輯器打開到隱藏窗口或某個不明顯的地方並且用戶迷路了。
見提交abfb04d (2017年12月7日),並提交a64f213 (2017年11月29日)由拉爾斯·施奈德( larsxschneider
) 。
幫助者: Junio C gitster
( gitster
) 。
(由Junio C gitster
合並-- gitster
-- in commit 0c69a13 ,2017 年 12 月 19 日)
launch_editor()
:表示 Git 等待用戶輸入當圖形
GIT_EDITOR
由打開並等待用戶輸入的 Git 命令(例如“git rebase -i
”)產生時,編輯器窗口可能會被其他窗口遮擋。
用戶可能會一直盯着原始的 Git 終端窗口,甚至沒有意識到他/她需要在 Git 繼續之前與另一個窗口進行交互。 對於這個用戶來說,Git 似乎掛了。如果終端支持擦除最后一行,則在原始終端打印一條 Git 正在等待編輯器輸入的消息,並在編輯器返回時將其刪除
原答案
我剛剛用 git 版本 1.6.2.msysgit.0.186.gf7512 和 Notepad++5.3.1 對其進行了測試
我更喜歡不必設置 EDITOR 變量,所以我嘗試了:
git config --global core.editor "\"c:\Program Files\Notepad++\notepad++.exe\""
# or
git config --global core.editor "\"c:\Program Files\Notepad++\notepad++.exe\" %*"
這總是給出:
C:\prog\git>git config --global --edit
"c:\Program Files\Notepad++\notepad++.exe" %*: c:\Program Files\Notepad++\notepad++.exe: command not found
error: There was a problem with the editor '"c:\Program Files\Notepad++\notepad++.exe" %*'.
如果我定義一個 npp.bat 包括:
"c:\Program Files\Notepad++\notepad++.exe" %*
我輸入:
C:\prog\git>git config --global core.editor C:\prog\git\npp.bat
它只適用於 DOS 會話,而不適用於 git shell 。
(與 core.editor 配置機制不同,帶有“ start /WAIT...
”的腳本將不起作用,而只能打開一個新的 DOS 窗口)
Bennett 的回答提到了避免添加腳本的可能性,而是在簡單的引號之間直接引用程序本身。 注意斜線的方向! 使用/
NOT \\
分隔路徑名中的文件夾!
git config --global core.editor \
"'C:/Program Files/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin"
或者,如果您使用的是 64 位系統:
git config --global core.editor \
"'C:/Program Files (x86)/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin"
但我更喜歡使用腳本(見下文):這樣我就可以使用不同的路徑或不同的選項,而無需再次注冊git config
。
實際的解決方案(使用腳本)是要意識到:
您在配置文件中所指的實際上是一個 shell ( /bin/sh
) 腳本,而不是 DOS 腳本。
那么有效的是:
C:\prog\git>git config --global core.editor C:/prog/git/npp.bat
使用C:/prog/git/npp.bat
:
#!/bin/sh
"c:/Program Files/Notepad++/notepad++.exe" -multiInst "$*"
要么
#!/bin/sh
"c:/Program Files/Notepad++/notepad++.exe" -multiInst -notabbar -nosession -noPlugin "$*"
通過該設置,我可以從 DOS 或 Git Shell 執行“ git config --global --edit
”,或者我可以從 DOS 或 Git Shell 執行“ git rebase -i ...
”。
Bot 命令將觸發 notepad++ 的新實例(因此使用-multiInst
' 選項),並在繼續之前等待該實例關閉。
請注意,我只使用“/”,而不是“ \\
”。 我使用選項 2 安裝了 msysgit。 (將git\\bin
目錄添加到PATH
環境變量,但沒有覆蓋一些內置的 Windows 工具)
notepad++ 包裝器稱為 .bat 的事實並不重要。
最好將其命名為“npp.sh”並將其放在[git]\\cmd
目錄中(或在您的 PATH 環境變量引用的任何目錄中)。
也可以看看:
lightfire228 在評論中補充道:
對於任何遇到 N++ 只是打開一個空白文件而 git 不接受您的提交消息的問題的人,請參閱“由於空消息而中止提交”:將您的
.bat
或.sh
文件更改為:
"<path-to-n++" .git/COMMIT_EDITMSG -<arguments>.
這將告訴記事本++打開臨時提交文件,而不是一個空白的新文件。
基於Darren 的回答,要使用 Notepad++,您可以簡單地執行此操作(全部在一行上):
git config --global core.editor "'C:/Program Files/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin"
顯然, C:/Program Files/Notepad++/notepad++.exe
部分應該是系統上 Notepad++ 可執行文件的路徑。 例如,它可能是C:/Program Files (x86)/Notepad++/notepad++.exe
。
它對我來說就像一種魅力。
文章如何將 Notepad++ 設置為提交的默認 Git 編輯器而不是 Vim解釋了命令的參數。
無論如何,我一直在玩這個,發現以下對我來說很好用:
git config --global core.editor "'C:/Program Files/TextPad 5/TextPad.exe' -m"
我認為 CMD 不喜歡單引號,因此您必須使用雙引號“指定嵌入的空格字符串參數”。
另一方面,Cygwin(我認為它是 Git 的 Bash 的底層平台)同時喜歡'
和"
;你可以指定一個類似 CMD 的路徑,使用/
而不是\\
,只要字符串被引用,即在這種情況下,使用單引號。
-m
覆蓋/指示使用多個編輯器,並且不需要在末尾添加%*
。
編輯:更新到 Vim 7.3 后,我得出的結論是,最簡潔、最簡單的方法是:
將 Vim 的主文件夾添加到您的路徑(右鍵單擊我的電腦→屬性→高級→環境變量)
運行這個:
git config --global core.editor "gvim --nofork '%*'"
如果你這樣做,那么我很確定它也適用於 Cygwin。
原答案:
即使有幾個與 Vim 相關的答案,我也無法在 Windows 下使用 gVim(同時不使用批處理文件或 %EDITOR% 或 Cygwin)。
我最終得出的結論既漂亮又干凈,並借鑒了這里的一些解決方案:
git config --global core.editor \
"'C:/Program Files/Vim/vim72/gvim.exe' --nofork '%*'"
我花了一段時間的一個問題是這些不是 Windows 風格的反斜杠。 它們是正常的正斜杠。
Notepad++ 工作得很好,盡管我選擇堅持使用 Notepad、-m,甚至有時使用內置的“編輯”。
您在使用 Notepad++ 時遇到的問題與 Git 如何啟動編輯器可執行文件有關。 我對此的解決方案是將環境變量EDITOR
設置為批處理文件,而不是實際的編輯器可執行文件,它執行以下操作:
start /WAIT "E:\PortableApps\Notepad++Portable\Notepad++Portable.exe" %*
/WAIT
告訴命令行會話暫停,直到應用程序退出,這樣你就可以編輯到你想要的內容,而 Git 會高興地等待你。 %* 將批處理文件的所有參數傳遞給 Notepad++。
C:\src> echo %EDITOR%
C:\tools\runeditor.bat
寫字板!
我很高興使用 Vim,但由於我試圖將 Git 介紹給公司,我想要一些我們都擁有的東西,並且發現寫字板似乎工作正常(即 Git 確實等到您完成編輯並關閉窗戶)。
git config core.editor '"C:\Program Files\Windows NT\Accessories\wordpad.exe"'
那是在 msysgit 上使用 Git Bash; 我還沒有從 Windows 命令提示符嘗試過(如果這有什么不同的話)。
我也在 Windows 上使用 Cygwin,但使用 gVim(與基於終端的Vim相反)。
為了使這項工作,我做了以下工作:
git_editor.bat
),其中包含以下內容: "C:/Program Files/Vim/vim72/gvim.exe" --nofork "%*"
git_editor.bat
放在我的PATH
。GIT_EDITOR=git_editor.bat
完成此操作后, git commit
等將正確調用 gVim 可執行文件。
注意 1: gVim 的--nofork
選項確保它阻塞直到提交消息被寫入。
注意 2:如果路徑中有空格,則 gVim 路徑周圍的引號是必需的。
注意 3: 需要在 "%*" 周圍加上引號,以防 Git 傳遞帶空格的文件路徑。
感謝 Stack Overflow 社區 ... 和一些研究,我能夠讓我最喜歡的編輯器EditPad Pro作為核心編輯器使用 msysgit 1.7.5.GIT 和 TortoiseGit v1.7.3.0 在 Windows XP SP3 上工作。 ..
按照上面的建議,我為代碼編輯器添加了 Bash 腳本的路徑...
git config --global core.editor c:/msysgit/cmd/epp.sh
然而,在上述解決方案的幾次失敗嘗試之后......我終於能夠讓它工作。 根據 EditPad Pro 的文檔,添加“/newinstance”標志將允許 shell 等待編輯器輸入...
' /newinstance ' 標志在我的案例中是關鍵......
#!/bin/sh
"C:/Program Files/JGsoft/EditPadPro6/EditPadPro.exe" //newinstance "$*"
編輯 c:\\Users\\YourUser 文件夾中的 .gitconfig 文件並添加:
[core]
editor = 'C:\\Program files\\path\\to\\editor.exe'
這是更大問題的一個症狀。 值得注意的是,您有一些設置TERM=dumb
。 其他不能正常工作的東西是less
命令,它表示您沒有功能齊全的終端。
這似乎最常見的原因是將 TERM 設置為全局 Windows 環境變量中的某些內容。 對我來說,當我安裝Strawberry Perl時出現了這個問題,一些關於這個問題的信息是關於這個問題的msysgit 錯誤以及幾個解決方案。
第一個解決方案是通過添加以下內容在您的 ~/.bashrc 中修復它:
export TERM=msys
您可以從 Git Bash 提示符執行此操作,如下所示:
echo "export TERM=msys" >> ~/.bashrc
另一個解決方案,最終是我所做的,因為我不關心 Strawberry Perl 將TERM=dumb
添加到我的環境設置的原因,是按照對 msysgit 錯誤報告的評論中的指示去刪除TERM=dumb
。
控制面板/系統/高級/環境變量...(或類似的,取決於您的 Windows 版本)是在 Windows 上設置粘性環境變量的地方。 默認情況下,未設置 TERM。 如果在那里設置了 TERM,那么您(或您安裝的程序之一 - 例如 Strawberry Perl)已經設置了它。 刪除該設置,你應該沒問題。
類似地,如果您使用 Strawberry Perl 並關心CPAN客戶端或類似的東西,您可以單獨保留TERM=dumb
並在您的 ~/.bashrc 文件中使用unset TERM
,這將具有與上述設置顯式術語類似的效果。
當然,所有其他解決方案都是正確的,因為您可以使用git config --global core.editor $MYFAVORITEEDITOR
來確保 Git 在需要為您啟動一個編輯器時使用您最喜歡的編輯器。
Vim/gVim對我來說效果很好。
>echo %EDITOR%
c:\Vim\Vim71\vim.exe
我在多個平台上使用 Git,而且我喜歡在所有平台上使用相同的 Git 設置。 (事實上,我所有的配置文件都在 Git 的發布控制之下,並在每台機器上放置了一個 Git 存儲庫克隆。)我想出的解決方案是這樣的:
我將我的編輯器設置為giteditor
git config --global core.editor giteditor
然后我創建了一個名為giteditor的符號鏈接,它在我的PATH 中。 (我有一個個人bin目錄,但在PATH 中的任何地方都有效。)該鏈接指向我當前選擇的編輯器。 在不同的機器和不同的平台上,我使用不同的編輯器,所以這意味着我不必更改我的通用 Git 配置( .gitconfig ),只需更改 giteditor指向的鏈接。
符號鏈接由我所知道的每個操作系統處理,盡管它們可能使用不同的命令。 對於 Linux,您使用ln -s 。 對於 Windows,您使用cmd內置mklink 。 它們有不同的語法(你應該查一下),但它們的工作方式都是一樣的,真的。
我讓 PortableGit 1.6 工作正常,但在升級到 PortableGit 1.7 Windows 版本后,我遇到了問題。 一些 Git 命令可以很好地打開 Notepad++.exe,但有些則不能,尤其是Git rebase 的行為不同。
問題是一些命令運行 Windows cmd 進程,而一些命令使用 Unix cmd 進程。 我想為 Notepad++ 編輯器提供啟動屬性,所以我需要一個自定義腳本。 我的解決辦法是這樣。
創建腳本以運行適當的文本編輯器。 該腳本看起來很奇怪,但它同時處理 Windows 和 Unix 變體。
c:/PortableGit/cmd/git-editor.bat
#!/bin/sh # Open a new instance function doUnix() { "c:\\program files\\notepad++\\notepad++.exe" -multiInst -nosession -notabbar $* exit } doUnix $* :WINCALL "c:\\program files\\notepad++\\notepad++.exe" -multiInst -nosession -notabbar %*
設置全局 core.editor 變量
腳本已保存到 git/cmd 文件夾,因此它已經在 gitconsole 路徑中。 這是強制性的,因為完整路徑可能無法正常工作。
git config --global core.editor "git-editor.bat"
現在我可以運行git commit -a和git rebase -i master命令。 如果您在 Git Windows 工具中遇到問題,請嘗試一下。
我需要執行以下兩項操作才能讓 Git 在 Windows 中啟動 Notepad++:
將以下內容添加到 .gitconfig:
editor = 'C:/Program Files/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin
修改快捷方式以啟動 Git Bash shell 以管理員身份運行,然后使用它來啟動 Git Bash shell。 我猜測上下文菜單條目“Git Bash here”沒有以所需的權限啟動 Notepad++。
做完以上兩件事后,它起作用了。
這是我使用Geany作為 Git 編輯器的設置:
git config --global core.editor C:/path/to/geany.bat
在geany.bat
包含以下內容:
#!/bin/sh
"C:\Program Files\Geany\bin\Geany.exe" --new-instance "$*"
它適用於 DOS 控制台和 msysgit。
我很難讓 Git 與WordPad 、 Komodo Edit以及我提供的幾乎所有其他編輯器合作。 大多數打開進行編輯,但 Git 顯然不會等待保存/關閉發生。
作為拐杖,我一直在做即
git commit -m "Fixed the LoadAll method"
保持事物的運轉。 它往往使我的提交消息比它們應該的要短一些,但顯然在 Windows 版本的 Git 上還有一些工作要做。
GitGUI 也沒有那么糟糕。 這需要一點定位,但在那之后,它工作得相當好。
我更喜歡使用 Emacs。 設置它可能有點棘手。
c:\\emacs
之類的地方。c:\\emacs\\bin\\addpm.exe
。 如果您使用的是 Windows Vista 或更高版本,則需要右鍵單擊並“以管理員身份運行”。 這會將可執行文件放在您的路徑中。.emacs
文件中的某處添加(server-start)
。 有關將.emacs
文件放在哪里的建議,請參閱Emacs Windows 常見問題解答。git config --global core.editor emacsclientw
Git 現在將在現有 Emacs 進程中打開文件。 您必須從c:\\emacs\\bin\\runemacs.exe
手動運行該現有進程。
如果路徑中有空格,Git 似乎找不到編輯器。 因此,您必須將帕特里克回答中提到的批處理文件放入非空白路徑。
我剛剛遇到了同樣的問題,並找到了不同的解決方案。 我得到
error: There was a problem with the editor 'ec'
我的路徑上有VISUAL=ec
和一個名為ec.bat
的批處理文件,其中包含一行:
c:\emacs\emacs-23.1\bin\emacsclient.exe %*
這讓我可以使用ec <filename>
從命令行編輯文件,並且設置VISUAL
意味着大多數 unixy 程序也可以選擇它。 不過,Git 似乎以與我的其他命令不同的方式搜索路徑 - 當我在Process Monitor 中查看git commit
,我看到它在路徑上的每個文件夾中查找ec
和ec.exe
,但沒有查找ec.bat
。 我添加了另一個環境變量( GIT_EDITOR=ec.bat
),一切都很好。
我正在使用 GitHub for Windows,這是一個不錯的視覺選項。 但我也更喜歡命令行,所以當我在 Git shell 中打開存儲庫時,為了使它工作,我只需設置以下內容:
git config --global core.editor vim
這很好用。
這適用於 PowerShell 和cmder 1.2(與 PowerShell 一起使用時)。 在文件~/.gitconfig
:
[core]
editor = 'c:/program files/sublime text 3/subl.exe' -w
我在這里找到了一個非常簡單的解決方案 - 盡管您必須復制作者提供的“subl”文件的路徑中可能存在錯誤。
我正在運行 Windows 7 x64,我必須將“subl”文件放在我的/Git/cmd/
文件夾中才能使其工作。
不過,它就像一種魅力。
我右鍵單擊桌面上的 Atom 圖標,然后單擊屬性。
復制“開始於”位置路徑
使用 Windows 資源管理器查看那里並找到“atom.exe”。
我在 Git Bash 中輸入:
git config --global core.editor C:/Users/YOURNAMEUSER/AppData/Local/atom/app-1.7.4/atom.exe"
注意:我將所有\\
更改為/
。 我在我的主目錄中創建了一個 .bashrc 並使用/
來設置我的主目錄並且它起作用了,所以我認為/
將是要走的路。
我設法通過使用引號和/
設置 EDITOR 變量來使環境版本正常工作:
EDITOR="c:/Program Files (x86)/Notepad++/notepad++.exe"
添加 sublime git config --global core.editor "'C:\\Program Files\\Sublime Text 3\\sublime_text.exe'"
我使用GIT_EDITOR
變量和notepad2
作為編輯器解決了類似的問題。
解決方案一:將環境變量GIT_EDITOR
設置為C:/tools/notepad2.exe
。 這很好用,但 git 會抱怨提交消息是否包含非 ASCII 字符。
解決方案 2:將GIT_EDITOR
設置為C:/tools/notepad2.exe //utf8
。 注意程序開關前面的雙斜線。 順便說一句: -utf8
也可以。
假設您想將VsCode配置為您的編輯器。 請執行下列操作:
.gitconfig
文件中:
.gitconfig
文件的默認位置是C:\Users\USER_NAME\.gitconfig
[core]
editor = code -w -n
[diff]
tool = vscode
[difftool "vscode"]
cmd = code -w -n --diff $LOCAL $REMOTE
[merge]
tool = vscode
[mergetool "vscode"]
cmd = code -w -n $MERGED
筆記:
-w
是強制性的,告訴git
等待vscode加載。-n
是可選的,它告訴git
在新窗口中打開vscode 。
您需要將單詞code
替換為 VsCode 的“.exe”路徑。
例如:
[core]
editor = "'C:/Users/Tal/AppData/Local/Programs/Microsoft VS Code/Code.exe'" -w -n
[diff]
tool = vscode
[difftool "vscode"]
cmd = "'C:/Users/Tal/AppData/Local/Programs/Microsoft VS Code/Code.exe'" -w -n --diff $LOCAL $REMOTE
[merge]
tool = vscode
[mergetool "vscode"]
cmd = "'C:/Users/Tal/AppData/Local/Programs/Microsoft VS Code/Code.exe'" -w -n $MERGED
筆記:
- 您需要用單引號
''
將路徑括起來。- 路徑中的斜杠應該是正斜杠
/
。
或者另一個例子:
[core]
editor = \"C:\\Users\\Tal\\AppData\\Local\\Programs\\Microsoft VS Code\\Code.exe\" -w -n
[diff]
tool = vscode
[difftool "vscode"]
cmd = \"C:\\Users\\Tal\\AppData\\Local\\Programs\\Microsoft VS Code\\Code.exe\" -w -n --diff $LOCAL $REMOTE
[merge]
tool = vscode
[mergetool "vscode"]
cmd = \"C:\\Users\\Tal\\AppData\\Local\\Programs\\Microsoft VS Code\\Code.exe\" -w -n $MERGED
VsCode 現在支持“3 路合並”! 更新在1.69.0和1.70.0版本中完成。 所以現在你可以啟用 VsCode “mergetool” 來查看 3 路合並。
為此,您需要更新該行:
[mergetool "vscode"]
cmd = code -w -n $MERGED
使用新行:
[mergetool "vscode"]
cmd = code -w -n --merge $REMOTE $LOCAL $BASE $MERGED
我正在Windows上試用Git 。 我到了嘗試“ git commit”的地步,並且出現了這個錯誤:
終端很笨,但沒有定義VISUAL或EDITOR。 請使用-m或-F選項提供消息。
所以我發現我需要一個名為EDITOR的環境變量。 沒問題。 我將其設置為指向記事本。 幾乎成功了。 默認的提交消息在記事本中打開。 但是記事本不支持裸線換行。 我出去了,得到了Notepad ++ ,但是我不知道如何將Notepad ++設置為%EDITOR%
,使其可以按預期與Git一起使用。
我沒有嫁給Notepad ++。 在這一點上,我不介意我使用什么編輯器。 我只希望能夠在編輯器中而不是在命令行(帶有-m
)中鍵入提交消息。
那些在Windows上使用Git的人:您使用什么工具來編輯提交消息,並且需要做什么才能使其生效?
我正在Windows上試用Git 。 我到了嘗試“ git commit”的地步,並且出現了這個錯誤:
終端很笨,但沒有定義VISUAL或EDITOR。 請使用-m或-F選項提供消息。
所以我發現我需要一個名為EDITOR的環境變量。 沒問題。 我將其設置為指向記事本。 幾乎成功了。 默認的提交消息在記事本中打開。 但是記事本不支持裸線換行。 我出去了,得到了Notepad ++ ,但是我不知道如何以這種方式將Notepad ++設置為%EDITOR%
,使其可以按預期與Git一起使用。
我沒有嫁給Notepad ++。 在這一點上,我不介意使用什么編輯器。 我只希望能夠在編輯器中而不是在命令行(帶有-m
)中鍵入提交消息。
那些在Windows上使用Git的人:您使用什么工具來編輯提交消息,並且需要做什么才能使其生效?
這是 Cygwin 的解決方案:
#!/bin/dash -e
if [ "$1" ]
then k=$(cygpath -w "$1")
elif [ "$#" != 0 ]
then k=
fi
Notepad2 ${k+"$k"}
如果沒有路徑,則不通過路徑
如果路徑為空,則傳遞空路徑
如果路徑不為空,則轉換為 Windows 格式。
然后我設置這些變量:
export EDITOR=notepad2.sh
export GIT_EDITOR='dash /usr/local/bin/notepad2.sh'
EDITOR 允許腳本與 Git 一起工作
GIT_EDITOR 允許腳本使用Hub 命令
那些在 Windows 上使用 Git 的人:您使用什么工具來編輯您的提交消息,您需要做什么才能使其工作?
我發現在 Windows和Linux 中,作為git 編輯器和通用代碼編輯器最有用的工具是Sublime Text 3 。 它工作得非常好,但需要一些設置才能使其恰到好處,所以我在這里完整地記錄了這一點:
關於我的主編輯器的旁注:對於大型項目,我使用 Eclipse 作為我的主要編輯器,當我需要使用它的高級功能(如多光標模式、垂直/列)時,Sublime Text 3 作為我的 git 編輯器和附加文件編輯器選擇模式等。對於中小型項目,我只使用 Sublime Text 3。 有關 Eclipse 的設置說明,請在此處查看我的 PDF 文檔。
當使用遠程安裝的homedrive(samba共享,nfs,...)時,你的~/.git
文件夾是共享的所有系統,這可能導致幾個問題。 因此,我更喜歡使用腳本來確定正確系統的正確編輯器:
#!/usr/bin/perl
# Detect which system I'm on and choose the right editor
$unamea = `uname -a`;
if($unamea =~ /mingw/i){
if($unamea =~ /devsystem/i){#Check hostname
exec('C:\Program Files (x86)\Notepad++\notepad++.exe', '-multiInst', '-nosession', @ARGV);
}
if($unamea =~ /testsystem/i){
exec('C:\Program Files\Notepad++\notepad++.exe', '-multiInst', '-nosession', @ARGV);
}
}
$MCEDIT=`which mcedit`;
if($MCEDIT =~ /mcedit/){
exec($MCEDIT, @ARGV);
}
$NANO=`which nano`;
if($NANO =~ /nano/){
exec($NANO, @ARGV);
}
die "You don't have a suitable editor!\n";
有人可能會考慮使用普通的shell腳本,但我使用的是perl,因為perl隨msysgit一起提供,而你的unixoid系統也會提供一個。 將腳本放在/home/username/bin
,該腳本應添加到.bashrc
或.profile
PATH
中。 一旦添加了git config --global core.editor giteditor.pl
,無論你身在何處,你都擁有正確的編輯器。
我只是直接使用TortoiseGit 。 它與我的PuTTY公鑰完美集成。
它有一個完美的提交消息編輯器。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.