3 回答

TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超4個(gè)贊
確保git-upload-pack在非登錄shell的路徑上。(在我的機(jī)器上它就在/usr/bin)。
要從非登錄shell查看遠(yuǎn)程計(jì)算機(jī)上的路徑,請(qǐng)嘗試以下操作:
ssh you@remotemachine echo \$PATH
(適用于Bash,Zsh和tcsh,也可能適用于其他shell。)
如果它返回的路徑不包含已有的目錄,則git-upload-pack需要通過將其設(shè)置為.bashrc(對(duì)于Bash),.zshenv(對(duì)于Zsh),.cshrc(對(duì)于tcsh)或等效的shell 來修復(fù)它。
您需要在遠(yuǎn)程計(jì)算機(jī)上進(jìn)行此更改。
如果您不確定需要添加到遠(yuǎn)程控制器的路徑PATH,可以使用此命令找到它(需要在遠(yuǎn)程計(jì)算機(jī)上運(yùn)行):
which git-upload-pack
在我打印的機(jī)器上/usr/bin/git-upload-pack。因此,在這種情況下,/usr/bin您需要確定的路徑是否在遠(yuǎn)程非登錄shell中PATH。

TA貢獻(xiàn)1752條經(jīng)驗(yàn) 獲得超4個(gè)贊
您還可以使用“-u”選項(xiàng)指定路徑。我發(fā)現(xiàn)這對(duì)我的.bashrc不會(huì)在非交互式會(huì)話中獲取的機(jī)器很有用。例如,
git clone -u /home/you/bin/git-upload-pack you@machine:code

TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超5個(gè)贊
基于Brian的回答,可以通過在克隆之后運(yùn)行以下命令來永久地設(shè)置上載包路徑,這消除了--upload-pack對(duì)后續(xù)拉/取請(qǐng)求的需要。同樣,設(shè)置receive-pack消除了--receive-pack對(duì)推送請(qǐng)求的需要。
git config remote.origin.uploadpack /path/to/git-upload-pack
git config remote.origin.receivepack /path/to/git-receive-pack
這兩個(gè)命令相當(dāng)于將以下行添加到repo中.git/config。
[remote "origin"]
uploadpack = /path/to/git-upload-pack
receivepack = /path/to/git-receive-pack
頻繁的用戶clone -u可能對(duì)以下別名感興趣。myclone應(yīng)該是不言自明的。myfetch / mypull / mypush可以在其回購(gòu)配置為通過替換上述沒有被修改被用于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
- 3 回答
- 0 關(guān)注
- 4293 瀏覽
添加回答
舉報(bào)