⌨ 技术

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)

  1. 访问原仓库页面,例如:https://github.com/timqian/chinese-independent-blogs
  2. 点击右上角的 Fork 按钮
  3. 选择你的账号,等待创建完成
  4. 复制你 fork 后的仓库地址,例如:https://github.com/muc-min/chinese-independent-blogs
  5. 在终端克隆: 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 条
🍃 还没有评论,沙发虚位以待~
🚇

穿越虫洞?

虫洞会把你随机传送到另一位陌生博主的网站——
可能是技术大佬,也可能是诗歌爱好者,开盲盒的时间到了。

森林精灵