亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

克隆遠程Git倉庫時找不到git-upload-pack:命令

克隆遠程Git倉庫時找不到git-upload-pack:命令

Git
偶然的你 2019-08-30 16:29:25
我一直在使用git來保持我的項目的兩個副本同步,一個是我的本地盒子,另一個是測試服務器。這是當我使用ssh登錄到遠程開發服務器時發生的問題;git clone [email protected]:/home/chris/myprojectInitialized empty Git repository in /tmp/myproject/.git/Password:bash: git-upload-pack: command not foundfatal: The remote end hung up unexpectedlyfetch-pack from '[email protected]:/home/chris/myproject' failed.(文件名已被更改以保護有罪......?。﹥蓚€盒子都運行Solaris 10 AMD。我已經做了一些挖掘,如果我添加--upload-pack=$(which git-upload-pack)命令工作,(并證明它$PATH包含根據RTFM解決方案'git-upload-pack'的路徑)但這真的很煩人,加上'git push'不起作用,因為我認為沒有--unpack=選擇。順便說一下,所有的git命令都可以在我的本地方框中正常工作,它與安裝在同一個NFS掛載上的軟件(1.5.4.2)版本相同/usr/local/bin。有人可以幫忙嗎?
查看完整描述

3 回答

?
Helenr

TA貢獻1780條經驗 獲得超4個贊

確保git-upload-pack在非登錄shell的路徑上。(在我的機器上它就在/usr/bin)。


要從非登錄shell查看遠程計算機上的路徑,請嘗試以下操作:


ssh you@remotemachine echo \$PATH

(適用于Bash,Zsh和tcsh,也可能適用于其他shell。)


如果它返回的路徑不包含已有的目錄,則git-upload-pack需要通過將其設置為.bashrc(對于Bash),.zshenv(對于Zsh),.cshrc(對于tcsh)或等效的shell 來修復它。


您需要在遠程計算機上進行此更改。


如果您不確定需要添加到遠程控制器的路徑PATH,可以使用此命令找到它(需要在遠程計算機上運行):


which git-upload-pack


在我打印的機器上/usr/bin/git-upload-pack。因此,在這種情況下,/usr/bin您需要確定的路徑是否在遠程非登錄shell中PATH。


查看完整回答
反對 回復 2019-08-30
?
溫溫醬

TA貢獻1752條經驗 獲得超4個贊

您還可以使用“-u”選項指定路徑。我發現這對我的.bashrc不會在非交互式會話中獲取的機器很有用。例如,


git clone -u /home/you/bin/git-upload-pack you@machine:code


查看完整回答
反對 回復 2019-08-30
?
月關寶盒

TA貢獻1772條經驗 獲得超5個贊

基于Brian的回答,可以通過在克隆之后運行以下命令來永久地設置上載包路徑,這消除了--upload-pack對后續拉/取請求的需要。同樣,設置receive-pack消除了--receive-pack對推送請求的需要。


git config remote.origin.uploadpack /path/to/git-upload-pack

git config remote.origin.receivepack /path/to/git-receive-pack

這兩個命令相當于將以下行添加到repo中.git/config。


[remote "origin"]

    uploadpack = /path/to/git-upload-pack

    receivepack = /path/to/git-receive-pack

頻繁的用戶clone -u可能對以下別名感興趣。myclone應該是不言自明的。myfetch / mypull / mypush可以在其回購配置為通過替換上述沒有被修改被用于git push與git mypush,等等。


[alias]

    myclone = clone --upload-pack /path/to/git-upload-pack

    myfetch = fetch --upload-pack /path/to/git-upload-pack

    mypull  = pull --upload-pack /path/to/git-upload-pack

    mypush  = push --receive-pack /path/to/git-receive-pack


查看完整回答
反對 回復 2019-08-30
  • 3 回答
  • 0 關注
  • 4270 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號