如何在服务器上运行不同版本的 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 bash如何调用不同版本的python

相同的 git 版本,相同的 Linux 发行版,不同的 git 分页设置

如何使用两个不同的节点版本运行两个不同的nodejs应用程序[关闭]

我可以在我的服务器上安装和运行不同版本的 php 吗?

认识Git

如何在同一页面上运行不同版本的 jQuery?