// PC530 技术论坛 v1.0
● online 登录 / 注册
返回列表
效率工具与硬件 #学习

【学习】Git 极简使用笔记(别名封装+GitBlit+Gitea 完整部署)


一、Git 别名封装:一键等效 SVN 操作
日常开发习惯 SVN 操作逻辑,可通过 Git 全局别名封装命令,无需记忆复杂原生 Git 指令,打开Git Bash 直接执行以下配置命令即可。
1.1 别名配置代码

等效 svn update:一键拉取远端最新代码

git config --global alias.up "pull"

创建使用代理的 clone, pull 别名 aclone, apull

git config --global alias.aclone "clone -c http.proxy=socks5://127.0.0.1:10808 -c https.proxy=socks5://127.0.0.1:10808"
git config --global alias.apull "pull -c http.proxy=socks5://127.0.0.1:10808 -c https.proxy=socks5://127.0.0.1:10808"
# 删除别名
git config --global --unset alias.aclone

等效 svn commit + push:一键【添加文件-提交-推送】,支持自定义提交备注

无备注则自动生成带时间戳的默认提交信息

git config --global alias.push '!f() {
if [ -z "$1" ]; then
msg="auto push - $(date +"%Y-%m-%d %H:%M:%S")";
else
msg="$1";
fi;
git add . && git commit -m "$msg" && git push;
}; f'
1.2 日常极简用法
封装别名命令
对应SVN操作
说明
git up
svn update
拉取远端仓库最新代码到本地
git push "修复了bug"
svn commit
自定义提交备注,一键提交并推送
git push
svn commit
无参数,自动生成时间戳备注提交推送
1.3 免账号密码配置
避免每次拉取/推送代码重复输入用户名密码,执行全局凭证存储命令:
git config --global credential.helper store


二、前置环境:安装 JDK8
GitBlit 服务运行依赖 Java 环境,需提前安装 JDK8,官方下载地址:
https://www.oracle.com/java/technologies/downloads/#java8-windows
补充说明:该页面为 Oracle 官方 Java 下载页,提供 JDK8/11/17/21/25/26 全版本安装包,Windows/Linux/Mac 全平台适配,生产环境新版 JDK(21/25/26)可免费商用,JDK8/11/17 新版更新商用需订阅授权。


三、服务端部署 GitBlit(Windows)
链接异常提示:GitBlit 官方地址http://gitblit.github.io/gitblit/ 当前网页解析失败,无法正常访问下载,可更换第三方镜像获取安装包。
3.1 下载安装包
访问官网下载最新版 GitBlit(官网解析失败,建议寻找镜像站下载)
3.2 修改核心配置文件 data\defaults.properties

代码仓库本地存储路径

git.repositoriesFolder = C:\svn\GitRepository

HTTPS访问端口

server.httpsPort = 8821

允许所有IP访问服务

server.httpBindInterface = 0.0.0.0

注释证书域名配置(自签名证书无需配置)

// server.certificateAlias = office.belltrip.net

SSH协议访问端口

git.sshPort = 8822
3.3 修改服务安装脚本 installService.cmd

设置系统架构

SET ARCH=amd64

设置GitBlit安装根目录

SET CD=D:\tools\gitblit-1.9.1

清空默认启动参数

--StartParams="" ^
3.4 安装并启动系统服务 1. 以管理员身份运行 installService.cmd,注册Windows系统服务 2. 打开系统服务面板,找到 GitBlit 服务,手动启动即可


四、Windows Git 客户端连接 GitBlit 踩坑解决方案
4.1 克隆仓库基础命令
git clone ssh://admin@office.belltrip.net:8822/jingqiu.git
4.2 常见报错及修复方案
报错1:SSL certificate problem: self signed certificate in certificate chain
自签名证书不受信任,关闭全局SSL证书校验:
git config --global http.sslVerify false
报错2:no matching host key type found. Their offer: ssh-rsa
新版SSH客户端默认禁用ssh-rsa算法,两种修复方式: 1. 临时交互授信:直接执行SSH命令,手动确认信任主机 2. 永久配置算法兼容:在 C:\Users\用户名.ssh\ 目录新建 config 文件,写入以下内容 Host office.belltrip.net
HostkeyAlgorithms +ssh-rsa
PubkeyAcceptedAlgorithms +ssh-rsa


五、Git 高频实用命令
5.1 恢复本地误删除文件
git reset --hard HEAD
5.2 更新.gitignore忽略规则(忽略已追踪文件)

清除本地缓存

git rm -r --cached .

重新添加所有文件

git add .

提交忽略规则变更

git commit -am "Remove ignored files"

拉取远端代码并推送

git pull origin master
git push origin master
5.3 查看全部Git全局配置
git config -l
5.4 分支基础操作
git checkout -b branch # 创建
git checkout branch # 切换到指定分支
git merge master # 将master主分支代码合并到当前分支 并切换到新分支
5.5 合并代码忽略指定文件(冲突自动取舍) 1. 项目根目录新建 .gitattributes 文件,配置文件合并规则,支持通配符 2. 规则说明:merge=ours 冲突时保留本地代码;merge=theirs 冲突时保留远端代码 3. 开启全局合并驱动支持

开启ours合并驱动

git config --global merge.ours.driver true


六、Linux 服务端部署 Gitea 1.26.1
链接异常提示:Gitea 二进制包直链 https://dl.gitea.com/gitea/1.26.1-linux-amd64 当前无法直接访问下载,可前往Gitea官方发布页选择对应版本包。
环境要求:系统 Git 版本 ≥ 2.0
6.1 下载并赋予执行权限
wget -O gitea https://dl.gitea.com/gitea/1.26.1/gitea-1.26.1-linux-amd64
chmod +x gitea
6.2 创建专用运行用户与目录授权

创建git系统用户

adduser --system --shell /bin/bash --gecos 'Git Version Control' --group --disabled-password --home /home/git git

创建Gitea数据、日志、自定义目录

mkdir -p /var/lib/gitea/{custom,data,log}
chown -R git:git /var/lib/gitea/
chmod -R 750 /var/lib/gitea/

创建配置文件目录并授权

mkdir /etc/gitea
chown root:git /etc/gitea
chmod 770 /etc/gitea

二次修正目录权限

sudo chown -R git:git /etc/gitea
sudo chown -R git:git /var/lib/gitea

配置Gitea工作目录环境变量

export GITEA_WORK_DIR=/var/lib/gitea/

移动二进制文件到系统全局命令目录

cp gitea /usr/local/bin/gitea
6.3 编写系统服务文件 systemd
编辑服务文件:vim /etc/systemd/system/gitea.service
[Unit]
Description=Gitea (Git with a cup of tea)
After=network.target mysql.service mariadb.service
Wants=mysql.service mariadb.service

[Service]
Type=simple
User=git
WorkingDirectory=/var/lib/gitea
ExecStart=/usr/local/bin/gitea web --config /etc/gitea/app.ini
Restart=always
RestartSec=5s
Environment=USER=root HOME=/var/lib/gitea GITEA_WORK_DIR=/var/lib/gitea

[Install]
WantedBy=multi-user.target
6.4 启动与管理 Gitea 服务

重载systemd配置

systemctl daemon-reload

启动gitea服务

sudo systemctl start gitea

查看服务运行状态

sudo systemctl status gitea

查看服务最近20条日志

journalctl -u gitea.service -n 20 --no-pager
6.5 命令行创建管理员账号
sudo -u git gitea admin user create --config /etc/gitea/app.ini --username xiong --password cexotxgt_4321 --email xiongmin@gmail.com --admin
6.6 Nginx反向代理
配置Nginx反向代理,将域名转发至本地 127.0.0.1:3002,即可通过域名访问网页端
6.7 Gitea 完整配置文件 /etc/gitea/app.ini
APP_NAME = Gitea: Git with a cup of tea
RUN_MODE = prod
RUN_USER = root
WORK_PATH = /var/lib/gitea

[repository]
ROOT = /var/lib/gitea/data/gitea-repositories

[repository.local]
LOCAL_COPY_PATH = /tmp/gitea/local-repo

[repository.upload]
TEMP_PATH = /var/lib/gitea/data/tmp/uploads

[server]
APP_DATA_PATH = /var/lib/gitea/data
DOMAIN = YOUR_DOMAIN
HTTP_PORT = 3002
HTTP_ADDR = 127.0.0.1
PROTOCOL = http
SSH_DOMAIN = YOUR_DOMAIN
SSH_PORT = 2222
SSH_LISTEN_PORT = 2222
DISABLE_SSH = false
START_SSH_SERVER = true
OFFLINE_MODE = false

[database]
DB_TYPE = mysql
HOST = 127.0.0.1:3306
NAME = giteadb
USER = gitea
PASSWD = YOUR_PASSWORD
SSL_MODE = disable
CHARSET = utf8mb4

[session]
PROVIDER = file

[picture]

DISABLE_GRAVATAR = false

ENABLE_FEDERATED_AVATAR = true

[security]
INSTALL_LOCK = true
SECRET_KEY = CreateAUniqueSecretKeyHere
INTERNAL_TOKEN = CreateAUniqueInternalTokenHere
ONLY_ALLOW_SECURITY_KIND_CYPHER = false
DISABLE_RUN_WITH_CUSTOM_USER = true

[service]

禁用公开注册

DISABLE_REGISTRATION = true

陌生人必须登录才能查看公开仓库

REQUIRE_SIGNIN_VIEW = true

关闭验证码

ENABLE_CAPTCHA = false
REGISTER_EMAIL_CONFIRM = false
ENABLE_NOTIFY_MAIL = false
ALLOW_ONLY_EXTERNAL_REGISTRATION = false
DEFAULT_KEEP_EMAIL_PRIVATE = false
DEFAULT_ALLOW_CREATE_ORGANIZATION = true
DEFAULT_ENABLE_TIMETRACKING = true
NO_REPLY_ADDRESS = noreply.localhost

[openid]
ENABLE_OPENID_SIGNIN = false
ENABLE_OPENID_SIGNUP = false

[oauth2]
JWT_SECRET = YOUR_SECRET
配置必填提醒:部署前务必修改app.ini 中占位参数:域名、数据库密码、SECRET_KEY、INTERNAL_TOKEN、JWT_SECRET,否则服务无法正常运行。