Git工具操作指南
目录
一、Git 基础操作
1.1 配置用户信息
# 设置全局用户名(提交时显示)
git config --global user.name "你的GitHub用户名"
# 设置全局邮箱
git config --global user.email "你的GitHub邮箱"
# 查看当前配置
git config --list
1.2 初始化仓库
# 在当前目录初始化一个新的 Git 仓库
git init
# 克隆远程仓库到本地
git clone https://github.com/用户名/仓库名.git
1.3 基本文件操作
# 查看当前仓库状态
git status
# 查看文件变化(未暂存的修改)
git diff
# 将文件添加到暂存区
git add 文件名 # 添加单个文件
git add . # 添加所有修改的文件
git add -A # 添加所有文件(包括删除的)
# 将文件从暂存区移除(但不删除文件)
git reset HEAD 文件名
1.4 提交修改
# 提交暂存区的文件(-m 后面是提交说明)
git commit -m "提交说明"
# 提交所有已跟踪文件的修改(跳过 git add)
git commit -am "提交说明"
# 修改最后一次提交(追加修改或修改提交信息)
git commit --amend -m "新的提交说明"
1.5 分支操作
# 查看所有分支(* 表示当前分支)
git branch
# 查看远程分支
git branch -r
# 创建新分支
git branch 分支名
# 切换到指定分支
git checkout 分支名
# 创建并切换到新分支(常用)
git checkout -b 分支名
# 删除分支(需先切换到其他分支)
git branch -d 分支名
# 强制删除分支
git branch -D 分支名
1.6 远程仓库操作
# 查看远程仓库地址
git remote -v
# 添加远程仓库
git remote add origin https://github.com/用户名/仓库名.git
# 重命名远程仓库(origin 是默认名称)
git remote rename origin 新的名称
# 删除远程仓库连接
git remote remove origin
# 修改远程仓库地址
git remote set-url origin 新的仓库地址
1.7 推送与拉取
# 推送本地分支到远程仓库(首次推送需 -u 建立关联)
git push -u origin 分支名
# 推送当前分支到远程仓库
git push
# 推送所有分支
git push --all
# 拉取远程仓库的更新
git pull
# 拉取远程指定分支
git pull origin 分支名
1.8 查看历史记录
# 查看提交历史
git log
# 查看简洁的单行历史
git log --oneline
# 查看最近 N 次提交
git log -n 5
# 查看所有分支的提交历史
git log --all
# 可视化查看分支图
git log --graph --oneline --all
1.9 撤销操作
# 撤销工作区的修改(恢复到最近一次提交的状态)
git checkout -- 文件名
# 取消暂存(将文件从暂存区放回工作区)
git reset HEAD 文件名
# 回退到指定版本(保留工作区修改)
git reset --soft 提交ID
# 回退到指定版本(保留工作区修改,取消暂存)
git reset --mixed 提交ID
# 回退到指定版本(丢弃所有修改,危险操作)
git reset --hard 提交ID
二、GitHub CLI (gh) 基础
2.1 安装与登录
# 安装 gh(Windows 使用 winget 或下载安装包)
# winget install GitHub.cli
# 验证安装
gh --version
# 登录 GitHub
gh auth login
# 查看登录状态
gh auth status
# 登出
gh auth logout
2.2 仓库操作
# 查看当前仓库信息
gh repo view
# 查看其他用户仓库信息
gh repo view 用户名/仓库名
# 列出当前用户的仓库
gh repo list 用户名 --limit 10
# 列出用户的所有仓库
gh repo list 用户名
# 创建新仓库(当前目录)
gh repo create 仓库名
# 创建新仓库(带说明)
gh repo create 仓库名 --description "仓库说明"
# 创建公开仓库
gh repo create 仓库名 --public
# 创建私有仓库
gh repo create 仓库名 --private
# 删除仓库(需确认)
gh repo delete 用户名/仓库名
2.3 Fork 操作
# Fork 仓库(不克隆到本地)
gh repo fork 用户名/仓库名
# Fork 并克隆到本地
gh repo fork 用户名/仓库名 --clone
# 查看当前用户的 fork 列表
gh repo list 用户名 --source
2.4 Git 操作
# 提交 PR
gh pr create
# 提交 PR 并指定标题和内容
gh pr create --title "PR标题" --body "PR描述"
# 提交 PR 并指定分支
gh pr create --base 主分支 --head 你的分支
# 查看 PR 列表
gh pr list
# 查看自己相关的 PR
gh pr list --author @me
# 查看指定 PR 详情
gh pr view PR编号
# 查看 PR 状态
gh pr status
# 合并 PR
gh pr merge PR编号
# 关闭 PR
gh pr close PR编号
2.5 Issue 操作
# 创建 Issue
gh issue create
# 创建 Issue 并指定标题和内容
gh issue create --title "问题标题" --body "问题描述"
# 查看 Issue 列表
gh issue list
# 查看指定 Issue
gh issue view 编号
# 关闭 Issue
gh issue close 编号
2.6 其他常用命令
# 查看 gh 帮助
gh help
# 查看具体命令帮助
gh pr create --help
# 启用交互式模式(某些命令会进入交互式界面)
gh issue new
三、Fork 仓库并提交 PR
3.1 完整流程(使用 gh)
# 1. Fork 仓库(网页操作:访问 https://github.com/原仓库/fork)
# 2. 克隆你 fork 的仓库到本地
git clone https://github.com/你的用户名/仓库名.git
# 3. 进入仓库目录
cd 仓库名
# 4. 添加原仓库作为 upstream(上游仓库)
git remote add upstream https://github.com/原仓库用户名/仓库名.git
# 5. 创建新分支进行修改
git checkout -b add-your-feature
# 6. 进行代码修改...
# 编辑文件后:
# 7. 添加修改到暂存区
git add .
# 8. 提交修改
git commit -m "添加新功能说明"
# 9. 推送分支到你 fork 的仓库
git push -u origin add-your-feature
# 10. 使用 gh 创建 PR
gh pr create --title "添加新功能" --body "这个 PR 做了..."
# 或者直接在网页上点击 "Compare & pull request" 按钮
3.2 同步上游仓库更新
# 1. 拉取上游仓库的更新
git fetch upstream
# 2. 切换到主分支
git checkout main
# 3. 合并上游仓库的更新
git merge upstream/main
# 4. 推送更新到你的 fork
git push origin main
3.3 使用网页操作 Fork(无需 gh)
- 访问原仓库页面,例如:
https://github.com/timqian/chinese-independent-blogs - 点击右上角的 Fork 按钮
- 选择你的账号,等待创建完成
- 复制你 fork 后的仓库地址,例如:
https://github.com/muc-min/chinese-independent-blogs - 在终端克隆:
bash git clone https://github.com/muc-min/chinese-independent-blogs.git
四、常见问题与解决方案
4.1 Git 相关问题
问题:git push 被拒绝
! [rejected] main -> main (fetch first)
error: failed to push some refs
解决: 先拉取远程更新,合并后再推送
git pull origin main
# 如果有冲突,解决冲突后:
git add .
git commit -m "解决冲突"
git push origin main
问题:忘记切换分支,在 main 分支上做了修改 解决:
# 1. 先暂存当前修改
git stash
# 2. 创建并切换到新分支
git checkout -b new-branch
# 3. 恢复暂存的修改
git stash pop
问题:提交信息写错了 解决:
# 修改最后一次提交信息
git commit --amend -m "正确的提交信息"
问题:需要从远程仓库获取最新代码,但不想合并 解决:
git fetch origin
# 查看远程分支
git branch -r
4.2 GitHub CLI 相关问题
问题:gh 命令未找到 解决: - 重新安装 GitHub CLI - 重启终端让 PATH 更新 - Windows 上确保安装了正确的版本
问题:gh auth login 失败 解决:
# 先检查登录状态
gh auth status
# 如果需要,重新登录
gh auth logout
gh auth login
问题:Fork 被拒绝(HTTP 403)
failed to fork: HTTP 403: You cannot fork this repository at this time
解决: - 如果你刚删除过该仓库的 fork,需要等待约 1 小时才能重新 Fork - 直接在 GitHub 网页上尝试 Fork
问题:gh pr create 没有反应
解决:
- 添加 -y 参数跳过确认
- 或使用 --fill 自动填充标题和描述
gh pr create --fill
4.3 SSH 密钥配置(可选)
如果你不想每次输入 token,可以使用 SSH:
# 1. 生成 SSH 密钥
ssh-keygen -t ed25519 -C "你的邮箱"
# 2. 查看公钥
cat ~/.ssh/id_ed25519.pub
# 3. 在 GitHub 设置中添加公钥
# 访问:https://github.com/settings/keys
# 4. 修改仓库的 remote 为 SSH 方式
git remote set-url origin git@github.com:用户名/仓库名.git
五、日常使用建议
5.1 推荐的工作流程
# 1. 每天开始工作时,先同步上游仓库
git checkout main
git pull upstream main
git push origin main
# 2. 创建新分支进行开发
git checkout -b feature/新功能
# 3. 开发完成后,提交代码
git add .
git commit -m "完成新功能"
# 4. 推送分支
git push -u origin feature/新功能
# 5. 创建 PR(使用 gh 或网页)
5.2 .gitignore 文件示例
# 忽略所有 .log 文件
*.log
# 忽略 node_modules 目录
node_modules/
# 忽略 .env 文件(包含敏感信息)
.env
# 忽略 IDE 配置文件
.idea/
.vscode/
5.3 常用别名(提升效率)
# 在 ~/.gitconfig 中添加别名
[alias]
st = status # git st 等于 git status
co = checkout # git co 等于 git checkout
br = branch # git br 等于 git branch
lg = log --graph --oneline # 可视化日志
unstage = reset HEAD -- # 取消暂存
六、参考资料
- Git 官方文档:https://git-scm.com/doc
- GitHub CLI 文档:https://cli.github.com/
- GitHub 官方文档:https://docs.github.com/
文档生成时间:2026-05-15
评论区
共 0 条