Git over HTTPS 配置实录:通过 CDN 加速访问 Git 仓库
写在前面
本文记录在服务器上配置 Git over HTTPS 的完整过程,并整理日常使用 Git 的操作指南。配置完成后,克隆、上传、拉取、同步等所有操作均可通过 CDN 加速访问,稳定可靠。
一、初始配置(只需一次)
第一次使用 Git,需要设置你的姓名和邮箱,这会记录在每次提交中,让别人知道是谁提交的代码:
git config --global user.name "你的名字"
git config --global user.email "你的邮箱"
然后设置 postBuffer(解决通过 CDN 上传大文件超时的问题):
git config http.postBuffer 524288000
查看当前配置:
git config --list
二、克隆仓库(git clone)
把服务器上的仓库完整复制到本地。执行后会在当前目录创建一个与仓库同名的文件夹:
git clone https://git_xiaoajun:你的密码@xiaoajun.cn/git/仓库名.git
例如克隆 test-project 仓库:
git clone https://git_xiaoajun:你的密码@xiaoajun.cn/git/test-project.git
执行后当前目录会多出一个 test-project 文件夹,里面就是仓库的所有文件和历史记录。
三、上传代码(git push)
修改代码后,需要三步操作上传到服务器:
cd test-project # 进入仓库目录
git add . # 第1步:添加所有改动的文件
git commit -m "说明文字" # 第2步:提交到本地仓库(说明文字描述本次改动)
git push # 第3步:上传到服务器
示例:新增了一个 README 文件后上传:
git add .
git commit -m "新增README文档"
git push
四、拉取代码(git pull)
当服务器上的代码有更新(比如别人推送了新代码),你需要拉取到本地:
git pull
这会自动下载并合并服务器的最新代码到你的本地。
五、同步代码(git fetch + merge)
如果只想看看服务器有什么更新,但不想立即合并到本地:
git fetch # 下载服务器最新代码(不合并)
git log origin/master # 查看服务器上的提交历史
git merge origin/master # 确认后再手动合并
通常直接用 git pull 即可,它等于 fetch + merge。
六、分支操作
分支用于同时维护多条开发线,比如一个修 Bug、一个加新功能:
git branch dev # 创建名为 dev 的新分支
git checkout dev # 切换到 dev 分支
git checkout master # 切回 master 主分支
git merge dev # 把 dev 分支的代码合并到当前分支
git push origin dev # 上传 dev 分支到服务器
git branch -d dev # 删除本地 dev 分支(合并完成后)
七、查看状态
git status # 查看当前改了哪些文件
git log --oneline # 查看提交历史(简洁模式)
git diff # 查看具体改了什么内容
八、创建新仓库
需要新建仓库时,分两步操作:
第1步:SSH 登录服务器建仓库
ssh hw@origin.xiaoajun.cn
sudo /usr/local/bin/create-git-repo.sh 新仓库名
exit
第2步:回本地克隆
git clone https://git_xiaoajun:你的密码@xiaoajun.cn/git/新仓库名.git
九、完整工作流程图

如上图所示,日常开发就是不断循环:编辑文件 → git add → git commit → git push,以及 git pull 同步他人的代码。
十、网络架构

所有操作均通过 CDN(xiaoajun.cn)加速,无需直连服务器。
十一、命令速查表

十二、常见问题
Q:push 时报错超时?
执行 git config http.postBuffer 524288000 增大缓冲区即可。
Q:push 时报 “fetch first”?
服务器有别人推的新代码,先 git pull 再 git push。
Q:clone 出来是空仓库?
说明仓库刚创建还没有任何提交。把文件放进去后 git add . → git commit → git push 即可。
Q:忘记是否配置过作者信息?
执行 git config --list 查看所有配置。
十三、配置文件位置(服务器端)
| 用途 | 路径 |
|---|---|
| nginx git 配置 | /etc/nginx/snippets/git.conf |
| HTTP 认证文件 | /etc/nginx/git.passwd |
| git 系统配置 | /etc/gitconfig |
| 建仓脚本 | /usr/local/bin/create-git-repo.sh |
| 仓库根目录 | /home/git_xiaoajun/repos/ |
— 完 —