From f7ff61fec2bd9f4f2189c046b95f92125c481c7d Mon Sep 17 00:00:00 2001 From: guoqingshan <704299375@qq.com> Date: Sat, 1 Aug 2026 17:28:41 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E6=B7=BB=E5=8A=A0Git=E6=93=8D=E4=BD=9C?= =?UTF-8?q?=E6=8C=87=E5=8D=97=E4=B8=8E=E5=B8=B8=E8=A7=81=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Git操作指南与常见问题.md | 360 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 360 insertions(+) create mode 100644 Git操作指南与常见问题.md diff --git a/Git操作指南与常见问题.md b/Git操作指南与常见问题.md new file mode 100644 index 0000000..f1065b8 --- /dev/null +++ b/Git操作指南与常见问题.md @@ -0,0 +1,360 @@ +# Git 操作指南与常见问题 + +本指南面向本项目(spanish-diary)的开发人员,说明日常更新提交、Gitea 令牌、Windows 凭据管理以及常见 Git 问题的处理方法。 + +## 1. 项目仓库信息 + +```text +主仓库:https://git.youzhilian.cn/guoqingshan/spanish-diary.git +Wiki 仓库:https://git.youzhilian.cn/guoqingshan/spanish-diary.wiki.git +主分支:main +``` + +项目目录: + +```text +C:\Users\Administrator\Documents\Codex\2026-07-30\build-web-apps-plugin-build-web\spanish-diary +``` + +执行 Git 操作前,请先进入项目目录: + +```powershell +cd C:\Users\Administrator\Documents\Codex\2026-07-30\build-web-apps-plugin-build-web\spanish-diary +``` + +## 2. 日常更新与提交 + +### 2.1 查看状态 + +```powershell +git status +``` + +`M` 表示已修改,`??` 表示未跟踪的新文件。 + +### 2.2 暂存文件 + +提交全部修改: + +```powershell +git add -A +``` + +只提交指定文件: + +```powershell +git add app.js translate.js +``` + +### 2.3 提交 + +```powershell +git commit -m "feat: 增加新功能" +``` + +常用提交信息前缀: + +```text +feat: 新功能 +fix: 修复问题 +docs: 文档更新 +style: 样式调整 +refactor: 代码重构 +test: 测试 +chore: 其他维护 +``` + +### 2.4 推送到远程 + +```powershell +git push origin main +``` + +如果本地分支已经跟踪远程分支,可以直接: + +```powershell +git push +``` + +### 2.5 拉取远程更新 + +```powershell +git pull origin main +``` + +### 2.6 查看提交历史 + +```powershell +git log --oneline +``` + +## 3. 撤销与修改提交 + +### 3.1 撤销暂存 + +```powershell +git restore --staged 文件名 +``` + +### 3.2 丢弃工作区修改 + +```powershell +git restore 文件名 +``` + +> 注意:此操作不可恢复,请确认后再执行。 + +### 3.3 修改上一次提交信息 + +```powershell +git commit --amend -m "新的提交信息" +``` + +### 3.4 撤销最近一次提交但保留修改 + +```powershell +git reset --soft HEAD~1 +``` + +## 4. 配置提交者信息 + +### 4.1 全局配置 + +```powershell +git config --global user.name "你的名字" +git config --global user.email "你的邮箱" +``` + +### 4.2 当前仓库配置 + +```powershell +git config user.name "guoqingshan" +git config user.email "704299375@qq.com" +``` + +### 4.3 查看当前配置 + +```powershell +git config --list +``` + +## 5. 创建 Gitea 访问令牌 + +1. 登录 Gitea 网站。 +2. 进入右上角用户头像,打开 **用户设置**。 +3. 左侧选择 **应用**。 +4. 在“生成新的令牌”区域填写令牌名称,例如 `spanish-diary-push`。 +5. 根据需要选择权限,推送代码通常需要: + + ```text + write:repository + ``` + +6. 点击 **生成令牌**。 +7. **立即复制并保存令牌**,关闭页面后将无法再次查看。 + +令牌格式示例: + +```text +cfa2f2cb9a1a01283bae9586cd42fa0518e0a4dc +``` + +> 安全提醒:令牌等同于密码,不要提交到仓库、聊天记录或公开文档中。 + +## 6. 将令牌存入 Windows 凭据管理器 + +### 6.1 检查 Git 凭据管理器 + +```powershell +git config --global credential.helper +``` + +正常应显示: + +```text +manager +``` + +### 6.2 写入令牌 + +在 PowerShell 中执行: + +```powershell +$cred = "protocol=https`nhost=git.youzhilian.cn`nusername=guoqingshan`npassword=你的令牌`n" +$cred | git credential approve +``` + +执行后,Git Credential Manager 会把令牌加密保存到 Windows 凭据管理器。 + +### 6.3 使用干净地址推送 + +```powershell +git remote set-url origin https://git.youzhilian.cn/guoqingshan/spanish-diary.git +git push origin main +``` + +推送时会自动从凭据管理器读取令牌,不需要把令牌写进 URL。 + +## 7. 查看和删除 Windows 凭据 + +### 7.1 查看 + +```powershell +cmdkey /list | findstr git.youzhilian.cn +``` + +也可以查看所有凭据: + +```powershell +cmdkey /list +``` + +### 7.2 删除 + +```powershell +cmdkey /delete:git:https://git.youzhilian.cn +``` + +删除后,下次推送会要求重新提供用户名和令牌。 + +## 8. 常见问题与解决办法 + +### 8.1 fatal: not a git repository + +原因:当前目录不是 Git 仓库。 + +解决: + +```powershell +cd C:\Users\Administrator\Documents\Codex\2026-07-30\build-web-apps-plugin-build-web\spanish-diary +git status +``` + +### 8.2 Authentication failed + +原因:令牌失效、密码错误或凭据过期。 + +解决: + +```powershell +git credential approve +``` + +重新写入新令牌,或先在 Gitea 中撤销旧令牌并生成新令牌。 + +### 8.3 fatal: remote origin already exists + +原因:远程地址已经存在。 + +解决:不要重复添加,改用设置: + +```powershell +git remote set-url origin https://git.youzhilian.cn/guoqingshan/spanish-diary.git +``` + +### 8.4 Everything up-to-date + +原因:本地没有新的提交。 + +解决:先提交再推送: + +```powershell +git add -A +git commit -m "feat: 新提交" +git push origin main +``` + +### 8.5 push rejected:非快速前进 + +原因:远程分支有新提交,本地落后。 + +解决: + +```powershell +git pull origin main --rebase +``` + +如果出现冲突,解决冲突后继续: + +```powershell +git add -A +git rebase --continue +git push origin main +``` + +### 8.6 LF will be replaced by CRLF + +原因:Windows 和 Linux 换行符不同。 + +解决:可以接受该提示;也可以在仓库根目录添加 `.gitattributes`: + +```text +* text=auto +*.js text eol=lf +*.html text eol=lf +*.css text eol=lf +``` + +### 8.7 Author identity unknown + +原因:没有配置用户名和邮箱。 + +解决: + +```powershell +git config user.name "guoqingshan" +git config user.email "704299375@qq.com" +``` + +### 8.8 合并冲突 + +原因:两边修改了同一个文件的同一区域。 + +解决: + +1. 查看冲突文件: + + ```powershell + git status + ``` + +2. 手动保留正确内容,删除冲突标记。 +3. 标记已解决: + + ```powershell + git add -A + git commit -m "merge: 解决冲突" + ``` + +### 8.9 提交到了 master,但远程是 main + +解决: + +```powershell +git branch -M main +git push -u origin main +``` + +### 8.10 想查看远程地址 + +```powershell +git remote -v +``` + +### 8.11 文件被其他程序占用 + +Windows 下如果 Git 报文件被占用,先关闭正在编辑该文件的编辑器或开发工具,再重试。 + +## 9. 推荐日常流程 + +```powershell +cd 项目目录 +git pull origin main +git status +# 修改代码 +git add -A +git commit -m "feat: 描述本次修改" +git push origin main +``` + +每次推送前先拉取,可以减少冲突。