如何在服务器上运行不同版本的 git?
Posted
技术标签:
【中文标题】如何在服务器上运行不同版本的 git?【英文标题】:How do I run a different version of git on a server? 【发布时间】:2020-09-20 10:33:37 【问题描述】:我在服务器上有一个旧版本 git (1.7.1) 的 git 存储库。我需要一个仅从 git 2.3 开始可用的功能,即我想运行命令:
git config receive.denyCurrentBranch updateInstead
在与系统管理员交谈后,他们在服务器上的不同位置安装了最新版本的 git (2.27.0)。使用这个较新的版本,我能够为存储库运行上述命令。
但是,每当我从本地计算机推送到服务器时,都会收到以下错误消息:
fatal: bad config value for 'receive.denycurrentbranch' in ./config
fatal: Could not read from remote repository.
这似乎暗示我push
到服务器时,服务器默认运行旧版本的git。有没有办法告诉服务器从不同的执行路径运行 git?运行时
git --exec-path=/path/to/new/git/env
我遇到了奇怪的错误,比如 git 忽略了 exec-path
之后的所有内容,或者完全忽略了所有标志。我不确定--exec-path
标志是否是解决此问题的正确方法。
【问题讨论】:
这个问题已经回答here。 【参考方案1】:您需要指定新的git-upload-pack
/git-receive-pack
cd /path/to/local/repo
git config remote.origin.uploadpack /path/to/new/git/usr/bin/git-upload-pack
git config remote.origin.receivepack /path/to/new/git/usr/bin2/git-receive-pack
这将是确保 git push/pull 与正确的 Git 对话的良好开端。
【讨论】:
以上是关于如何在服务器上运行不同版本的 git?的主要内容,如果未能解决你的问题,请参考以下文章
相同的 git 版本,相同的 Linux 发行版,不同的 git 分页设置