详细的 Git 操作分步指南

详细的 Git 操作分步指南

    • [🧰 前提准备](#🧰 前提准备)
    • [第 1 步:配置 Git 用户信息(首次使用需设置)](#第 1 步:配置 Git 用户信息(首次使用需设置))
    • [第 2 步:初始化本地仓库(或克隆已有仓库)](#第 2 步:初始化本地仓库(或克隆已有仓库))
      • [情况 A:**从零开始创建新项目**](#情况 A:从零开始创建新项目)
      • [情况 B:**已有远程仓库,直接克隆**](#情况 B:已有远程仓库,直接克隆)
    • [第 3 步:关联远程仓库(仅当使用 `git init` 时需要)](#第 3 步:关联远程仓库(仅当使用 git init 时需要))
    • [第 4 步:拉取最新代码(确保本地同步)](#第 4 步:拉取最新代码(确保本地同步))
    • [第 5 步:切换或创建分支](#第 5 步:切换或创建分支)
      • [查看所有分支(本地 + 远程)](#查看所有分支(本地 + 远程))
      • [切换到已有分支(如 `dev`)](#切换到已有分支(如 dev))
      • [创建并切换到新分支(如 `feature/login`)](#创建并切换到新分支(如 feature/login))
    • [第 6 步:查看当前工作区状态](#第 6 步:查看当前工作区状态)
    • [第 7 步:添加、提交、推送代码(完整提交流程)](#第 7 步:添加、提交、推送代码(完整提交流程))
    • 第8步:查看完整提交历史
    • [💡 小技巧:组合使用](#💡 小技巧:组合使用)
    • [🔄 补充:查看某次提交的具体内容](#🔄 补充:查看某次提交的具体内容)
    • [第 9 步:日常协作建议流程](#第 9 步:日常协作建议流程)
    • [🔍 附:常用辅助命令速查](#🔍 附:常用辅助命令速查)
    • [✅ 总结流程图(文字版)](#✅ 总结流程图(文字版))

覆盖从零开始初始化仓库、关联远程仓库、拉取代码、切换分支、查看状态等日常开发中最常用的操作流程。


🧰 前提准备

  • 已安装 Git(可通过 git --version 验证)
  • 有 GitHub / GitLab / Gitee 等远程仓库地址(如 https://github.com/yourname/project.git

第 1 步:配置 Git 用户信息(首次使用需设置)

bash 复制代码
git config --global user.name "Your Name"
git config --global user.email "you@example.com"

✅ 只需设置一次,后续所有仓库都会使用该身份。


第 2 步:初始化本地仓库(或克隆已有仓库)

情况 A:从零开始创建新项目

bash 复制代码
# 1. 创建项目目录
mkdir my-project
cd my-project

# 2. 初始化 Git 仓库
git init

# 3. 创建初始文件(可选)
echo "# My Project" > README.md

情况 B:已有远程仓库,直接克隆

bash 复制代码
git clone https://github.com/yourname/my-project.git
cd my-project

⚠️ 推荐优先使用 git clone,它会自动关联远程仓库并拉取代码。


第 3 步:关联远程仓库(仅当使用 git init 时需要)

如果你是用 git init 新建的本地仓库,需手动关联远程地址:

bash 复制代码
git remote add origin https://github.com/yourname/my-project.git

验证是否关联成功:

bash 复制代码
git remote -v

输出应类似:

plain 复制代码
origin  https://github.com/yourname/my-project.git (fetch)
origin  https://github.com/yourname/my-project.git (push)

第 4 步:拉取最新代码(确保本地同步)

即使刚克隆,也建议养成习惯:

bash 复制代码
# 查看当前所在分支(通常是 main 或 master)
git branch

# 拉取远程最新代码(假设当前在 main 分支)
git pull origin main

💡 如果提示 "fatal: refusing to merge unrelated histories",说明本地和远程历史不一致。首次推送新本地仓库到已有远程仓库时,可用:

bash 复制代码
git pull origin main --allow-unrelated-histories

第 5 步:切换或创建分支

查看所有分支(本地 + 远程)

bash 复制代码
git branch -a

切换到已有分支(如 dev

bash 复制代码
git checkout dev
# 或(Git 2.23+ 推荐)
git switch dev

创建并切换到新分支(如 feature/login

bash 复制代码
git checkout -b feature/login
# 或
git switch -c feature/login

✅ 新分支基于当前分支创建。


第 6 步:查看当前工作区状态

这是日常最常用的命令之一:

bash 复制代码
git status

你会看到类似信息:

  • Changes not staged for commit :已修改但未 add 的文件
  • Untracked files:新增的、未被 Git 跟踪的文件
  • Changes to be committed :已 add,准备提交的文件

简洁模式(只显示文件名和状态):

bash 复制代码
git status -s

示例输出:

plain 复制代码
M  src/app.js      # 修改但未暂存
?? public/logo.png # 新增未跟踪
A  .gitignore      # 已暂存

第 7 步:添加、提交、推送代码(完整提交流程)

bash 复制代码
# 1. 添加修改(可指定文件或全部)
git add .

# 2. 再次检查状态(确认暂存内容)
git status

# 3. 提交到本地仓库
git commit -m "feat: add login page"

# 4. 推送到远程仓库(首次推送需指定上游)
git push -u origin feature/login
# 后续只需 git push

第8步:查看完整提交历史

bash 复制代码
git log
  • 显示:提交哈希(commit hash)、作者、日期、提交信息
  • 按时间倒序排列(最新在最前)
  • q 退出

8.1、简洁版提交历史(一行一条)

bash 复制代码
git log --oneline

输出示例:

bash 复制代码
a1b2c3d feat: add user login
e4f5g6h fix: resolve timeout issue
7890abc docs: update README

✅ 最常用!适合快速浏览。

8.2、查看某文件的提交历史

bash 复制代码
git log --oneline -- path/to/file.txt

只显示修改过该文件的提交。


8.3、 查看最近 N 次提交

bash 复制代码
git log -5                # 显示最近 5 次提交(完整版)
git log --oneline -5      # 显示最近 5 次(简洁版)

8.4、查看所有分支的提交历史

bash 复制代码
git log --oneline --all

加上图形化分支线更直观:

bash 复制代码
git log --oneline --graph --all

输出示例:

plain 复制代码
* a1b2c3d (HEAD -> feature/login) feat: add login form
* e4f5g6h (main) fix: api bug
| * 7890abc (dev) chore: update deps
|/
* 1234567 init project

8.5、 搜索包含特定关键词的提交

bash 复制代码
git log --grep="fix"

查找提交信息中包含 "fix" 的提交。

或者按作者查找:

bash 复制代码
git log --author="Your Name"

8.6、查看某时间段内的提交

bash 复制代码
git log --since="2025-11-01" --until="2025-11-17"
git log --since="1 week ago"

💡 小技巧:组合使用

例如,查看 最近 10 次提交、带分支图、仅显示 main 和当前分支

bash 复制代码
git log --oneline --graph --decorate -10
  • --decorate:显示分支/标签名(如(main)(HEAD)

🔄 补充:查看某次提交的具体内容

先用git log --oneline找到 commit hash(如 a1b2c3d),然后:

bash 复制代码
git show a1b2c3d

会显示该次提交的:

  • 提交信息
  • 修改了哪些文件
  • 具体代码差异(diff)

日常推荐组合

bash 复制代码
git log --oneline -10          # 快速看最近 10 条
git log --oneline --graph      # 看分支合并情况
git show <commit-hash>         # 查看某次提交详情

第 9 步:日常协作建议流程

每次开始工作前,建议执行:

bash 复制代码
# 1. 切换到目标分支(如 main)
git switch main

# 2. 拉取最新代码
git pull origin main

# 3. 创建新功能分支
git switch -c feature/new-ui

# 4. 开发、add、commit...

# 5. 推送分支供他人 review 或合并
git push -u origin feature/new-ui

🔍 附:常用辅助命令速查

命令 用途
git log --oneline 查看简洁提交历史
git diff 查看未暂存的代码差异
git diff --cached 查看已暂存的差异
git restore <file> 丢弃工作区某文件的修改(Git 2.23+)
git reset HEAD <file> 从暂存区移除文件(旧版等效 restore --staged

✅ 总结流程图(文字版)

plain 复制代码
配置用户 → 初始化/克隆 → 关联远程(如需要)→ 拉取代码 → 切换分支 → 
查看状态 → 修改文件 → git add → git commit → git push

如果你正在使用 VS Code、JetBrains IDE 或其他编辑器,它们通常内置了 Git 图形界面,但掌握命令行能让你更高效、灵活地处理复杂场景。

相关推荐
芒鸽1 小时前
高效团队协作的基石:Git流程规范详解
git
Kiri霧2 小时前
Scala 循环控制:掌握 while 和 for 循环
大数据·开发语言·scala
pale_moonlight2 小时前
九、Spark基础环境实战((上)虚拟机安装Scala与windows端安装Scala)
大数据·分布式·spark
武子康2 小时前
大数据-167 ELK Elastic Stack(ELK) 实战:架构要点、索引与排错清单
大数据·后端·elasticsearch
20岁30年经验的码农3 小时前
Java Elasticsearch 实战指南
java·开发语言·elasticsearch
艾莉丝努力练剑3 小时前
【Python基础:语法第一课】Python 基础语法详解:变量、类型、动态特性与运算符实战,构建完整的编程基础认知体系
大数据·人工智能·爬虫·python·pycharm·编辑器
智能相对论3 小时前
10万人共同选择的背后,Rokid乐奇有自己的“破圈秘籍”
大数据·智能眼镜
人大博士的交易之路3 小时前
龙虎榜——20251128
大数据·数学建模·数据挖掘·数据分析·缠论·龙虎榜·道琼斯结构
YJlio4 小时前
ShareEnum 学习笔记(9.5):内网共享体检——开放共享、匿名访问与权限风险
大数据·笔记·学习