git下载
https://registry.npmmirror.com/binary.html?path=git-for-windows/
.gitmodules
Git 忽略文件(.gitignore)内容,主要用于过滤 Visual Studio、Python、Node.js、MAA 相关项目中不需要提交到仓库的文件 / 目录。
主要语法含义:
| 语法 | 示例 | 含义 |
|---|---|---|
# |
# 答题日志文件 |
注释行,仅说明作用,不生效 |
* |
*.exe、*~ |
通配符,匹配任意字符(*.exe 匹配所有 exe 文件,*~ 匹配临时备份文件) |
**/ |
**/[Pp]ackages/* |
递归匹配所有目录下的 Packages/ 文件夹 |
! |
!.vscode/settings.json |
反向匹配(例外规则),表示「不忽略这个文件」,优先级高于普通规则 |
/ |
enc_temp_folder/* |
匹配指定目录下的所有文件,不递归子目录 |
git基本语法
初始化仓库
git init
关联 Gitea 远程仓库
# 第一步:查看当前已关联的远程仓库(若输出为空,说明未关联)
git remote -v
# 第二步:若未关联,执行以下命令绑定(替换为你的 Gitea 仓库地址)
git remote add origin <Gitea仓库地址>
# 示例(HTTPS):
# git remote add origin https://gitea.example.com/张三/maa-project.git
# 示例(SSH):
# git remote add origin git@gitea.example.com:张三/maa-project.git
添加文件到暂存区
# 添加所有文件(会自动遵守 .gitignore 规则,跳过无需上传的文件)
git add .
# 若只想添加指定文件,比如只加 README.md 和 src/ 目录:
# git add README.md src/
配置 Git 用户名和邮箱
git config --global user.name "你的Gitea用户名"
git config --global user.email "你的Gitea绑定邮箱"
只想给当前 MAA 项目配置(而非全局),去掉 --global 即可:
git config user.name "你的Gitea用户名"
git config user.email "你的Gitea绑定邮箱"
#验证配置是否生效
git config --list | grep user
# 输出示例:
# user.name=wnboy
# user.email=gm@wnboy.com
清除git暂存缓存
git rm -r --cached .
# 重新添加所有文件到暂存区
git add .
提交到本地仓库
git commit -m "初始化项目,提交基础代码"
# 备注:-m 后是提交说明,必须写,建议清晰描述本次提交的内容
推送到 Gitea 远程仓库
# 首次推送需指定分支(默认主分支是 main 或 master,按 Gitea 仓库的分支名来)
git push -u origin main
# 若 Gitea 仓库默认分支是 master,执行:
# git push -u origin master
初始配置后,后续上传只需执行3步:
# 1. 添加修改的文件到暂存区
git add .
# 2. 提交到本地仓库(写清楚更新内容)
git commit -m "修复XX功能,优化XX逻辑"
# 3. 推送到 Gitea
git push
若远程仓库有其他人提交的更新,需先拉取再推送,避免冲突:
git pull origin main # 拉取远程最新代码
git push origin main # 推送本地更新
分支冲突处理
git add 冲突文件名
git commit -m "解决分支冲突"
git push
问题排查
统一换行符规则
# A:让 Git 以 LF 存储,检出时自动转 CRLF(Windows 推荐)
git config --global core.autocrlf true
# B:强制所有文件用 LF(跨平台协作推荐,和 Linux/Mac 保持一致)
git config --global core.autocrlf input
# 同时禁止 Git 转换换行符
git config --global core.safecrlf false
# 配置后,删除暂存区文件重新添加,警告就会消失
git rm -r --cached . # 清空暂存区
git add . # 重新添加文件,无换行符警告
检查本地分支和提交记录
# 1. 查看本地所有分支(确认分支名)
git branch
# 输出示例:若只有 * (HEAD detached at xxx) 或 * master,说明分支不是 main
# 2. 查看提交记录(确认是否有提交)
git log
# 若提示 "fatal: your current branch 'main' does not have any commits yet",说明无提交记录
# 3.Gitea 仓库默认分支若为 master,而你推 main 就会报错,替换分支名即可:
git push -u origin master
# 4.若想把本地分支重命名为 main,再推送:
git branch -M main
git push -u origin main
一键解决分支不匹配
# 1. 确保所有文件已提交
git add .
git commit -m "初始化 MAA 项目代码"
# 2. 把本地当前分支强制重命名为 main
git branch -M main
# 3. 推送 main 分支到远程(若远程无 main,会自动创建)
git push -u origin main
Gitea 仓库已存在 main 分支但仍报错
# 先拉取远程 main 分支的最新内容(即使是空分支),再推送:
git pull origin main --allow-unrelated-histories
git push -u origin main
Gitea 用户名/密码不正确
# 步骤 1:清空 Windows 凭据管理器中的 Git 缓存(关键)
# 1. 按下 Win + R,输入 control keymgr.dll 并回车(打开凭据管理器)
# 2. 找到「普通凭据」中包含 git.wnboy.com 的条目,删除它
# 步骤 2:重新执行推送命令,会弹出账号密码输入框
git push -u origin master
main -> main (fetch first)
远程 Gitea 仓库的 main 分支已有内容(比如默认的 README.md、LICENSE 等),而你的本地仓库没有这些内容
- 拉取远程内容并合并到本地
# 拉取远程 main 分支并合并(核心命令) git pull origin main --allow-unrelated-histories - 重新推送本地代码
git push -u origin main
Pulling is not possible because you have unmerged files
遇到 unmerged files(未合并的文件)错误,这是因为本地存在未解决的合并冲突文件,Git 无法继续拉取 / 合并远程内容,必须先手动解决这些冲突才能继续操作
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END








暂无评论内容