簡體   English   中英

為tortoiseGit改變GIT_SSH的值

[英]Changing value of GIT_SSH for tortoiseGit

我想使用tortoiseGit通過SSH檢出SVN存儲庫。

它每次都失敗,因為無法執行SSH命令。 顯然,原因是,調用自定義SSH命令,其中包含用戶名和密碼。 之前我使用tortoiseSVN通過SSH訪問存儲庫並嘗試在命令行中提交身份驗證憑據(與自定義命令中相同),但由於這不起作用,我切換到基於密鑰的身份驗證。 這實際上我也想用git做,但在我能做到這一點之前,我顯然需要更改SSH命令。

我很好奇,我的舊憑據如何傳輸到服務器,最后在tortoiseGit設置中找到“顯示環境變量”按鈕。 在那里我可以看到兩個名為GIT_SSH和SVN_SSH的變量都包含相同的錯誤命令。 所以我查找了這些環境變量,但顯然它們不存在。 我試圖創建它們,但是git繼續使用舊的。

我假設在某種腳本中,這些變量是在git啟動之前定義的,但經過數小時的搜索后,我找不到任何東西。 我還重新安裝了git,toritoiseGit和tortoiseSvn,並嘗試刪除所有數據,但在重新安裝完所有內容之后,git仍會使用錯誤的命令。

實際輸出是(我選擇“Git clone”后得到的 - “來自SVN信息庫”:

git.exe svn clone "svn+ssh://username@puttyconfig/path/to/my/repo"  "C:\Path\to\Repo\on\Filesysem" -T trunk -b branches -t tags

WARNING: --prefix is not given, defaulting to empty prefix.
This is probably not what you want! In order to stay compatible
with regular remote-tracking refs, provide a prefix like
--prefix=origin/ (remember the trailing slash), which will cause
the SVN-tracking refs to be placed at refs/remotes/origin/*.
NOTE: In Git v2.0, the default prefix will change from empty to 'origin/'.
Initialized empty Git repository in C:/Path/to/Repo/on/Filesysem/.git/
No such file or directory: Error in child process: exec of 'C:\Program Files\TortoiseGit\bin\TortoiseGitPlink.exe -I username -pw password' failed: No such file or directory at /usr/lib/perl5/site_perl/Git/SVN.pm line 310



git did not exit cleanly (exit code 1) (1794 ms @ 06.11.2014 16:17:30)

''中的命令實際上與我在GIT_SSH和SVN_SSH中找到的字符串完全相同。

您不能將參數包含在SVN_SSH環境變量中以供Git使用(對於Windows)。

創建一個putty配置並在那里存儲用戶名,這樣就不需要使用CLI參數。 密碼不必作為參數發布,因為預定義的ASKPASS工具可以要求輸入密碼。

要么

創建一個包裝器應用程序,啟動Tortoise(Git)Plink,其中包含將stdin和stdout交給Tortoise(Git)Plink的正確參數。

為了防止其他人來到這里,我在Windows上使用Git Extensions時得到了類似的錯誤消息:

失敗:/usr/lib/perl5/site_perl/Git/SVN.pm行310GitExtensions \\ PuTTY \\ plink.exe中沒有此類文件或目錄

修復是將git_ssh環境變量設置為8.3格式:

set git_ssh=c:\progra~2\gitextensions\putty\plink.exe

在我的情況下,“progra~2”是“程序文件(x86)”的短名稱,您可以通過命令行上的dir / x獲取目錄的短名稱

似乎路徑中的空間沒有得到妥善處理

我找到了解決問題的方法。

我卸載了tortoiseGit,Git和tortoiseSVN。 之后,我搜索了我的硬盤驅動器,找到了可能留下的任何配置文件,實際上找到了很多。 之后我搜索了注冊表中的任何舊密鑰,並再次找到了很多。 顯然,SVN_SSH和GIT_SSH是注冊表中的故事而不是環境變量(盡管事實上它們被稱為環境變量......)。

在重新安裝所有內容並嘗試了一段時間后,我能夠檢查出存儲庫。 顯然,整個問題是由於無法編寫卸載程序的人造成的,實際上是能夠完全刪除程序而且不僅刪除了一些二進制文件......

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM