// 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,否则服务无法正常运行。