腾讯云服务器搭建自己的Git服务
· 阅读需 4 分钟
要确认是否已经安装 Git,您可以尝试以下几种方法:
-
检查 Git 版本: 在终端或命令提示符中输入以下命令:
git --version如果 Git 已安装,这个命令会返回 Git 的版本号,例如:
git version 2.30.1
更新Git版本
腾讯云服务器上系统显示 Git 版本为 1.8.3.1,这意味着 Git 已经安装在您的系统上。这个版本相对较旧,但对于基本的 Git 操作来说应该足够使用。
关于版本 1.8.3.1:
- 这个版本发布于 2013 年,是一个相对较老的版本。
- 它支持大多数基本的 Git 功能,足以满足常见的版本控制需求。
- 但它可能缺少一些现代 Git 版本中的新特性和优化。
如果您想继续使用当前版本进行我们之前讨论的 Git 服务器设置,应该不会有大问题。但如果您决定更新 Git,可以考虑以下步骤:
对于 CentOS/RHEL 系统:
-
首先,安装必要的依赖:
sudo yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker -
卸载旧版本的 Git:
sudo yum remove git -
下载并安装新版本的 Git:
cd /usr/srcsudo wget https://www.kernel.org/pub/software/scm/git/git-2.9.5.tar.gzsudo tar xzf git-2.9.5.tar.gzcd git-2.9.5sudo make prefix=/usr/local allsudo make prefix=/usr/local install -
更新环境变量:
echo "export PATH=/usr/local/bin:$PATH" >> ~/.bashrcsource ~/.bashrc -
验证新版本:
git --version
SSH密钥
本机电脑生成一个密钥,可以对应远程的多个,比如Github, 腾讯云服务器,阿里云服务器等;等于说一个密码,可以打开多个站点。
对于 root 用户,密钥应该放在:正确的路径应该是 /root/.ssh/authorized_keys。
- 添加公钥
- 打开
/root/.ssh/authorized_keys文件。 - 将您的公钥内容粘贴到这个文件中。
- 如果文件中已有其他密钥,将新的公钥添加到新的一行。
- 打开
- 设置正确的权限
- 对
/root/.ssh目录:设置权限为 700 - 对
/root/.ssh/authorized_keys文件:设置权限为 600
- 对
个人开发使用非裸仓库即可
- 非裸仓库(Non-bare Repository):
- 包含工作目录和 .git 目录
- 可以直接在其中进行开发工作
- 文件系统中直接显示项目文件
- 通常用于本地开发
对于 Astra child 主题,您的选择取决于您的使用场景:
- 使用裸仓库:
- 优点:
- 适合作为中央仓库,多人协作时使用
- 避免直接在服务器上修改文件导致的冲突
- 缺点:
- 不能直接在服务器上编辑或查看文件
- 需要通过克隆到本地来查看和修改文件
- 优点:
- 使用非裸仓库:
- 优点:
- 可以直接在服务器上查看和编辑文件
- 适合单人开发或需要在服务器上直接修改文件的情况
- 缺点:
- 如果多人同时修改服务器上的文件,可能会导致冲突
- 不太适合作为中央仓库使用
- 优点:
建议:
- 如果您主要在本地开发,只是使用服务器作为备份或共享代码的地方,使用裸仓库更合适。
- 如果您需要在服务器上直接修改文件,或者服务器是您的主要开发环境,那么使用非裸仓库更合适。
- 对于 WordPress 主题开发,特别是如果您需要在服务器上直接测试主题,使用非裸仓库可能更方便。
转换方法:
-
将裸仓库转为非裸仓库:
Copy
git config --bool core.bare falsegit checkout -f -
将非裸仓库转为裸仓库:
Copy
mv .git ../temp_gitrm -rf *mv ../temp_git .gitmv .git/* .rmdir .gitgit config --bool core.bare true
考虑到您正在开发 Astra child 主题,如果您需要在服务器上直接查看和测试主题文件,使用非裸仓库可能更适合您的需求。这样,您可以直接在 WordPress 的主题目录中进行开发和测试。
解决方案: 有几种方法可以解决这个问题:
a) 在服务器端设置 Git 配置(推荐):
Copy
ssh root@101.260.72.131
cd /www/wwwroot/gitTest.git
git config receive.denyCurrentBranch updateInstead
这个设置允许推送到当前分支,并自动更新工作目录。