1
Git操作指南与常见问题
guoqingshan edited this page 2026-08-01 17:28:47 +08:00
This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Git 操作指南与常见问题

本指南面向本项目(spanish-diary)的开发人员,说明日常更新提交、Gitea 令牌、Windows 凭据管理以及常见 Git 问题的处理方法。

1. 项目仓库信息

主仓库:https://git.youzhilian.cn/guoqingshan/spanish-diary.git
Wiki 仓库:https://git.youzhilian.cn/guoqingshan/spanish-diary.wiki.git
主分支:main

项目目录:

C:\Users\Administrator\Documents\Codex\2026-07-30\build-web-apps-plugin-build-web\spanish-diary

执行 Git 操作前,请先进入项目目录:

cd C:\Users\Administrator\Documents\Codex\2026-07-30\build-web-apps-plugin-build-web\spanish-diary

2. 日常更新与提交

2.1 查看状态

git status

M 表示已修改,?? 表示未跟踪的新文件。

2.2 暂存文件

提交全部修改:

git add -A

只提交指定文件:

git add app.js translate.js

2.3 提交

git commit -m "feat: 增加新功能"

常用提交信息前缀:

feat: 新功能
fix: 修复问题
docs: 文档更新
style: 样式调整
refactor: 代码重构
test: 测试
chore: 其他维护

2.4 推送到远程

git push origin main

如果本地分支已经跟踪远程分支,可以直接:

git push

2.5 拉取远程更新

git pull origin main

2.6 查看提交历史

git log --oneline

3. 撤销与修改提交

3.1 撤销暂存

git restore --staged 文件名

3.2 丢弃工作区修改

git restore 文件名

注意:此操作不可恢复,请确认后再执行。

3.3 修改上一次提交信息

git commit --amend -m "新的提交信息"

3.4 撤销最近一次提交但保留修改

git reset --soft HEAD~1

4. 配置提交者信息

4.1 全局配置

git config --global user.name "你的名字"
git config --global user.email "你的邮箱"

4.2 当前仓库配置

git config user.name "guoqingshan"
git config user.email "704299375@qq.com"

4.3 查看当前配置

git config --list

5. 创建 Gitea 访问令牌

  1. 登录 Gitea 网站。

  2. 进入右上角用户头像,打开 用户设置。

  3. 左侧选择 应用。

  4. 在“生成新的令牌”区域填写令牌名称,例如 spanish-diary-push。

  5. 根据需要选择权限,推送代码通常需要:

    write:repository
    
  6. 点击 生成令牌。

  7. 立即复制并保存令牌,关闭页面后将无法再次查看。

令牌格式示例:

cfa2f2cb9a1a01283bae9586cd42fa0518e0a4dc

安全提醒:令牌等同于密码,不要提交到仓库、聊天记录或公开文档中。

6. 将令牌存入 Windows 凭据管理器

6.1 检查 Git 凭据管理器

git config --global credential.helper

正常应显示:

manager

6.2 写入令牌

在 PowerShell 中执行:

$cred = "protocol=https`nhost=git.youzhilian.cn`nusername=guoqingshan`npassword=你的令牌`n"
$cred | git credential approve

执行后,Git Credential Manager 会把令牌加密保存到 Windows 凭据管理器。

6.3 使用干净地址推送

git remote set-url origin https://git.youzhilian.cn/guoqingshan/spanish-diary.git
git push origin main

推送时会自动从凭据管理器读取令牌,不需要把令牌写进 URL。

7. 查看和删除 Windows 凭据

7.1 查看

cmdkey /list | findstr git.youzhilian.cn

也可以查看所有凭据:

cmdkey /list

7.2 删除

cmdkey /delete:git:https://git.youzhilian.cn

删除后,下次推送会要求重新提供用户名和令牌。

8. 常见问题与解决办法

8.1 fatal: not a git repository

原因:当前目录不是 Git 仓库。

解决:

cd C:\Users\Administrator\Documents\Codex\2026-07-30\build-web-apps-plugin-build-web\spanish-diary
git status

8.2 Authentication failed

原因:令牌失效、密码错误或凭据过期。

解决:

git credential approve

重新写入新令牌,或先在 Gitea 中撤销旧令牌并生成新令牌。

8.3 fatal: remote origin already exists

原因:远程地址已经存在。

解决:不要重复添加,改用设置:

git remote set-url origin https://git.youzhilian.cn/guoqingshan/spanish-diary.git

8.4 Everything up-to-date

原因:本地没有新的提交。

解决:先提交再推送:

git add -A
git commit -m "feat: 新提交"
git push origin main

8.5 push rejected:非快速前进

原因:远程分支有新提交,本地落后。

解决:

git pull origin main --rebase

如果出现冲突,解决冲突后继续:

git add -A
git rebase --continue
git push origin main

8.6 LF will be replaced by CRLF

原因:Windows 和 Linux 换行符不同。

解决:可以接受该提示;也可以在仓库根目录添加 .gitattributes:

* text=auto
*.js text eol=lf
*.html text eol=lf
*.css text eol=lf

8.7 Author identity unknown

原因:没有配置用户名和邮箱。

解决:

git config user.name "guoqingshan"
git config user.email "704299375@qq.com"

8.8 合并冲突

原因:两边修改了同一个文件的同一区域。

解决:

  1. 查看冲突文件:

    git status
    
  2. 手动保留正确内容,删除冲突标记。

  3. 标记已解决:

    git add -A
    git commit -m "merge: 解决冲突"
    

8.9 提交到了 master,但远程是 main

解决:

git branch -M main
git push -u origin main

8.10 想查看远程地址

git remote -v

8.11 文件被其他程序占用

Windows 下如果 Git 报文件被占用,先关闭正在编辑该文件的编辑器或开发工具,再重试。

9. 推荐日常流程

cd 项目目录
git pull origin main
git status
# 修改代码
git add -A
git commit -m "feat: 描述本次修改"
git push origin main

每次推送前先拉取,可以减少冲突。