Git 命令使用教程

Git 命令使用教程目录

  • [Git 命令使用教程](#Git 命令使用教程)
    • [一、Git 基础配置](#一、Git 基础配置)
      • [1.1 用户信息配置](#1.1 用户信息配置)
      • [1.2 常用全局配置](#1.2 常用全局配置)
    • 二、仓库操作
      • [2.1 创建和克隆仓库](#2.1 创建和克隆仓库)
      • [2.2 添加远程仓库](#2.2 添加远程仓库)
    • 三、文件操作
      • [3.1 添加和提交文件](#3.1 添加和提交文件)
      • [3.2 查看差异](#3.2 查看差异)
    • 四、分支管理
      • [4.1 分支操作](#4.1 分支操作)
      • [4.2 合并和变基](#4.2 合并和变基)
    • 五、提交历史
      • [5.1 查看历史](#5.1 查看历史)
      • [5.2 撤销操作](#5.2 撤销操作)
    • 六、远程操作
      • [6.1 推送和拉取](#6.1 推送和拉取)
      • [6.2 同步远程分支](#6.2 同步远程分支)
    • 七、暂存和储藏
      • [7.1 储藏修改](#7.1 储藏修改)
    • 八、标签管理
      • [8.1 标签操作](#8.1 标签操作)
    • 九、高级技巧
      • [9.1 清理和优化](#9.1 清理和优化)
      • [9.2 二分查找](#9.2 二分查找)
      • [9.3 子模块](#9.3 子模块)
    • 十、常用工作流示例
      • [10.1 日常开发流程](#10.1 日常开发流程)
      • [10.2 修复bug流程](#10.2 修复bug流程)
    • [十一、Git 命令速查表](#十一、Git 命令速查表)
      • 常用命令组合
      • [常用别名配置(添加到 ~/.gitconfig)](#常用别名配置(添加到 ~/.gitconfig))
    • 注意事项

Git 命令使用教程

一、Git 基础配置

1.1 用户信息配置

bash 复制代码
# 设置用户名
git config --global user.name "你的名字"

# 设置邮箱
git config --global user.email "你的邮箱"

# 查看所有配置
git config --list

# 查看特定配置
git config user.name
git config user.email

1.2 常用全局配置

bash 复制代码
# 设置默认编辑器为 VSCode
git config --global core.editor "code --wait"

# 设置默认合并工具
git config --global merge.tool vscode

# 设置命令行颜色显示
git config --global color.ui auto

# 设置别名(快捷命令)
git config --global alias.st status
git config --global alias.ci commit
git config --global alias.br branch
git config --global alias.co checkout
git config --global alias.lg "log --oneline --graph --all"

二、仓库操作

2.1 创建和克隆仓库

bash 复制代码
# 初始化本地仓库
git init
git init 项目名  # 创建目录并初始化

# 克隆远程仓库
git clone https://github.com/用户名/仓库名.git
git clone https://github.com/用户名/仓库名.git 自定义目录名
git clone --depth=1 https://github.com/用户名/仓库名.git  # 浅克隆(只克隆最新版本)

# 查看远程仓库信息
git remote -v
git remote show origin

2.2 添加远程仓库

bash 复制代码
# 添加远程仓库
git remote add origin https://github.com/用户名/仓库名.git

# 修改远程仓库地址
git remote set-url origin https://github.com/用户名/新仓库名.git

# 删除远程仓库
git remote remove origin

# 重命名远程仓库
git remote rename origin new-origin

三、文件操作

3.1 添加和提交文件

bash 复制代码
# 添加文件到暂存区
git add 文件名               # 添加单个文件
git add .                    # 添加所有文件
git add *.js                 # 添加所有js文件
git add src/                 # 添加整个目录
git add -A                   # 添加所有文件(包括删除的)
git add -u                   # 只添加已跟踪的文件

# 查看状态
git status
git status -s               # 简洁模式

# 提交更改
git commit -m "提交说明"
git commit -m "标题" -m "详细描述"  # 多行提交信息

# 一次性添加和提交
git commit -am "提交说明"    # 只能提交已跟踪的文件

# 修改最后一次提交
git commit --amend -m "新的提交信息"
git commit --amend --no-edit  # 只修改文件,不修改提交信息

3.2 查看差异

bash 复制代码
# 查看工作区和暂存区的差异
git diff

# 查看暂存区和仓库的差异
git diff --staged
git diff --cached

# 查看两次提交之间的差异
git diff commit1 commit2
git diff HEAD~1 HEAD

# 查看特定文件的差异
git diff 文件名
git diff HEAD~1 HEAD 文件名

四、分支管理

4.1 分支操作

bash 复制代码
# 查看分支
git branch                 # 查看本地分支
git branch -a              # 查看所有分支(包括远程)
git branch -v              # 查看分支详情
git branch --merged        # 查看已合并的分支
git branch --no-merged     # 查看未合并的分支

# 创建分支
git branch 分支名           # 创建分支
git branch 分支名 commit-id # 从指定提交创建分支
git checkout -b 分支名      # 创建并切换到分支
git switch -c 分支名        # Git 2.23+ 创建并切换

# 切换分支
git checkout 分支名
git switch 分支名           # Git 2.23+

# 重命名分支
git branch -m 旧分支名 新分支名    # 重命名当前分支
git branch -m 新分支名           # 重命名当前分支

# 删除分支
git branch -d 分支名        # 删除已合并的分支
git branch -D 分支名        # 强制删除分支

4.2 合并和变基

bash 复制代码
# 合并分支
git merge 分支名            # 合并指定分支到当前分支
git merge --no-ff 分支名    # 禁用快进合并
git merge --squash 分支名   # 压缩合并

# 变基
git rebase 分支名           # 将当前分支变基到指定分支
git rebase --continue       # 继续变基操作
git rebase --abort          # 中止变基操作
git rebase --skip           # 跳过当前提交

# 解决冲突后继续
git add .
git rebase --continue

五、提交历史

5.1 查看历史

bash 复制代码
# 基本查看
git log
git log --oneline          # 单行显示
git log --graph            # 图形化显示
git log --all              # 显示所有分支

# 高级查看
git log -p                 # 显示差异
git log --stat             # 显示统计信息
git log --since="2023-01-01"
git log --until="2023-12-31"
git log --author="作者名"
git log --grep="关键词"
git log -S "函数名"         # 搜索代码变更

# 组合使用
git log --oneline --graph --all
git log --pretty=format:"%h - %an, %ar : %s"

5.2 撤销操作

bash 复制代码
# 撤销工作区修改
git checkout -- 文件名      # 撤销单个文件修改
git checkout -- .          # 撤销所有修改

# 撤销暂存区修改
git reset HEAD 文件名       # 从暂存区移除文件
git reset                  # 移除所有暂存文件

# 撤销提交
git reset --soft HEAD~1    # 撤销提交,保留修改到暂存区
git reset --mixed HEAD~1   # 撤销提交,保留修改到工作区(默认)
git reset --hard HEAD~1    # 彻底撤销提交和修改

# 创建反向提交
git revert commit-id       # 创建新的提交来撤销指定提交
git revert HEAD            # 撤销最新提交

六、远程操作

6.1 推送和拉取

bash 复制代码
# 推送分支
git push origin 分支名
git push -u origin 分支名   # 设置上游分支
git push origin --all      # 推送所有分支
git push origin --tags     # 推送所有标签

# 拉取更新
git pull origin 分支名
git pull --rebase          # 使用变基方式拉取
git fetch origin           # 只获取不合并

# 强制推送(谨慎使用)
git push origin 分支名 --force
git push origin 分支名 --force-with-lease  # 更安全的强制推送

6.2 同步远程分支

bash 复制代码
# 获取远程分支
git fetch origin
git fetch --all

# 创建本地分支跟踪远程分支
git checkout -b 本地分支名 origin/远程分支名
git checkout --track origin/远程分支名

# 删除远程分支
git push origin --delete 分支名
git push origin :分支名     # 旧语法

# 更新远程分支列表
git remote prune origin
git fetch -p               # 获取并清理

七、暂存和储藏

7.1 储藏修改

bash 复制代码
# 储藏当前修改
git stash
git stash save "储藏说明"
git stash -u               # 包括未跟踪文件

# 查看储藏列表
git stash list

# 应用储藏
git stash apply           # 应用最新储藏,不删除
git stash apply stash@{n} # 应用指定储藏
git stash pop             # 应用并删除最新储藏

# 删除储藏
git stash drop stash@{n}  # 删除指定储藏
git stash clear           # 删除所有储藏

# 从储藏创建分支
git stash branch 新分支名 stash@{n}

八、标签管理

8.1 标签操作

bash 复制代码
# 查看标签
git tag
git tag -l "v1.*"         # 筛选标签

# 创建标签
git tag 标签名             # 轻量标签
git tag -a 标签名 -m "说明" # 附注标签
git tag 标签名 commit-id   # 给历史提交打标签

# 推送标签
git push origin 标签名
git push origin --tags     # 推送所有标签

# 删除标签
git tag -d 标签名          # 删除本地标签
git push origin --delete 标签名  # 删除远程标签
git push origin :refs/tags/标签名  # 旧语法

九、高级技巧

9.1 清理和优化

bash 复制代码
# 清理未跟踪文件
git clean -n              # 预览将要删除的文件
git clean -f              # 删除未跟踪文件
git clean -fd             # 删除未跟踪文件和目录

# 优化仓库
git gc                    # 垃圾回收
git prune                 # 删除无效对象

# 查看仓库大小
git count-objects -vH

9.2 二分查找

bash 复制代码
# 开始二分查找
git bisect start

# 标记为有问题
git bisect bad

# 标记为正常
git bisect good commit-id

# 结束二分查找
git bisect reset

9.3 子模块

bash 复制代码
# 添加子模块
git submodule add https://github.com/用户名/仓库名.git 路径

# 初始化子模块
git submodule init
git submodule update

# 更新所有子模块
git submodule update --init --recursive

十、常用工作流示例

10.1 日常开发流程

bash 复制代码
# 1. 更新本地仓库
git pull origin main --rebase

# 2. 创建功能分支
git checkout -b feature/新功能

# 3. 开发并提交
git add .
git commit -m "实现新功能"

# 4. 推送分支
git push -u origin feature/新功能

# 5. 创建 Pull Request(在GitHub/GitLab上操作)

# 6. 合并后清理
git checkout main
git pull origin main
git branch -d feature/新功能

10.2 修复bug流程

bash 复制代码
# 1. 从main分支创建hotfix分支
git checkout main
git pull origin main
git checkout -b hotfix/紧急修复

# 2. 修复并提交
git add .
git commit -m "修复紧急问题"

# 3. 合并到main
git checkout main
git merge --no-ff hotfix/紧急修复
git push origin main

# 4. 清理分支
git branch -d hotfix/紧急修复

十一、Git 命令速查表

常用命令组合

bash 复制代码
# 查看状态简洁版
git status -s

# 一行显示提交历史
git log --oneline -10

# 图形化查看所有分支历史
git log --graph --oneline --all

# 优雅的log显示
git log --pretty=format:"%C(yellow)%h %C(blue)%ad %C(red)%d %C(reset)%s" --date=short

常用别名配置(添加到 ~/.gitconfig)

ini 复制代码
[alias]
    st = status
    ci = commit
    br = branch
    co = checkout
    df = diff
    lg = log --oneline --graph --all
    last = log -1 HEAD
    undo = reset --soft HEAD~1
    unstage = reset HEAD --
    amend = commit --amend
    wip = !git add -A && git commit -m \"WIP\"

注意事项

  1. 谨慎使用 --force,可能会覆盖他人的工作
  2. 提交前先 pull,避免冲突
  3. 频繁提交,小步快跑
  4. 写好提交信息,遵循约定式提交
  5. 使用分支进行功能开发,保护主分支
相关推荐
lanhuazui102 小时前
git常见操作
git
未名编程3 小时前
本地项目上传 GitHub 私有库:GitHub CLI 与 Git 原生双方案详解
git·github
我是一只代码狗3 小时前
git和master分支进行对比差异
git
弘毅 失败的 mian3 小时前
Git 标签管理
经验分享·笔记·git
TPBoreas3 小时前
前端项目 Git 仓库管理策略选择
git
钦拆大仁4 小时前
Git提交代码报错fatal: detected dubious ownership ...
git
C_心欲无痕4 小时前
git - git push同时推送GitHub和Gitee两个远程仓库
git·gitee·github
骁悦彬子4 小时前
IntelliJ IDEA2025 版本控制(svn、git) 修改文件后,所属目录的颜色也变化
git·svn·intellij-idea
一只旭宝5 小时前
Linux专题十四:git代码管理库
git