Git 命令大全笔记

Git 是分布式版本控制系统,核心命令涵盖仓库管理、代码提交、分支操作、远程协作等场景。以下按功能分类整理高频命令,附示例和说明,适合日常开发查阅。

一、基础配置与初始化

1. 全局配置(首次使用)

bash

运行

# 设置用户名和邮箱(关联提交记录)
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"

# 查看配置信息
git config --list

2. 初始化仓库

bash

运行

# 在当前目录创建新Git仓库
git init

# 克隆远程仓库(如GitHub仓库)
git clone https://github.com/username/repo.git

二、文件状态管理

1. 查看文件状态

bash

运行

git status  # 显示工作区、暂存区文件状态
git status -s  # 精简输出(M=修改,A=新增,??=未跟踪)

2. 暂存与取消暂存

bash

运行

# 将文件添加到暂存区
git add filename.txt  # 单个文件
git add .  # 所有修改/新增文件(不包含删除)
git add -u  # 仅跟踪过的文件(修改/删除)

# 取消暂存(从暂存区移除)
git reset HEAD filename.txt

3. 提交修改

bash

运行

# 提交暂存区文件到本地仓库(需写提交信息)
git commit -m "feat: add login function"

# 直接提交工作区修改(跳过暂存区,仅跟踪过的文件)
git commit -am "fix: resolve bug in user list"

# 修改最后一次提交(如补全信息、添加遗漏文件)
git commit --amend -m "new message"

三、版本回溯与日志

1. 查看提交日志

bash

运行

git log  # 完整日志(按时间倒序)
git log --oneline  # 精简日志(一行显示提交ID和信息)
git log --graph  # 图形化显示分支合并历史
git log -p filename.txt  # 查看指定文件的修改记录

2. 版本回溯

bash

运行

# 回退到指定版本(保留工作区修改,需重新提交)
git reset --soft <commit-id>

# 回退到指定版本(重置暂存区,保留工作区)
git reset --mixed <commit-id>  # 默认模式

# 强制回退到指定版本(清空工作区和暂存区,谨慎使用)
git reset --hard <commit-id>

# 查看所有操作记录(包括回退),用于恢复误操作
git reflog

四、分支操作

1. 分支管理

bash

运行

# 查看分支(*表示当前分支)
git branch
git branch -a  # 查看本地+远程分支

# 创建分支
git branch feature/login

# 切换分支
git checkout feature/login
git switch feature/login  # Git 2.23+推荐用法

# 创建并切换分支
git checkout -b feature/payment
git switch -c feature/payment

# 删除分支(已合并到主分支)
git branch -d feature/login

# 强制删除分支(未合并)
git branch -D feature/login

2. 分支合并

bash

运行

# 切换到主分支,合并feature分支
git checkout main
git merge feature/login

# 解决冲突后继续合并
git add <冲突文件>
git commit -m "merge: resolve conflicts"

# 变基合并(线性提交历史,避免分叉)
git checkout feature/login
git rebase main

五、远程仓库协作

1. 远程仓库管理

bash

运行

# 查看远程仓库地址
git remote -v

# 添加远程仓库(命名为origin)
git remote add origin https://github.com/username/repo.git

# 修改远程仓库地址
git remote set-url origin https://new.url.com/repo.git

2. 拉取与推送

bash

运行

# 拉取远程分支最新代码(合并到本地)
git pull origin main

# 拉取远程分支但不合并(仅下载)
git fetch origin

# 推送本地分支到远程
git push origin main

# 推送新分支到远程
git push -u origin feature/login  # -u关联上游分支,后续可直接git push

3. 标签管理(版本发布)

bash

运行

# 创建标签(轻量标签)
git tag v1.0.0

# 创建带注释的标签
git tag -a v1.0.0 -m "release version 1.0.0"

# 推送标签到远程
git push origin v1.0.0
git push origin --tags  # 推送所有标签

六、撤销与恢复

1. 撤销工作区修改

bash

运行

# 恢复工作区文件到最近一次提交状态(未暂存)
git checkout -- filename.txt

2. 恢复已删除文件

bash

运行

# 从版本库恢复已删除的文件
git checkout <commit-id> -- filename.txt

3. 放弃本地所有修改(谨慎使用)

bash

运行

git reset --hard origin/main

七、进阶操作

1. 暂存工作区(临时切换分支)

bash

运行

# 暂存当前工作区修改
git stash

# 查看暂存列表
git stash list

# 恢复最近一次暂存
git stash apply
git stash pop  # 恢复并删除暂存记录

# 删除暂存
git stash drop

2. 忽略文件(.gitignore)

bash

运行

# 创建.gitignore文件,添加忽略规则(如日志、依赖包)
echo "node_modules/" >> .gitignore
echo "*.log" >> .gitignore

3. 查看差异

bash

运行

# 工作区与暂存区的差异
git diff

# 暂存区与最近一次提交的差异
git diff --cached

# 两个分支之间的差异
git diff main feature/login

八、常用场景示例

1. 日常开发流程

bash

运行

git pull origin main  # 拉取最新代码
git checkout -b feature/new  # 创建新分支
# 修改代码...
git add .
git commit -m "feat: add new feature"
git push -u origin feature/new  # 推送分支

2. 解决冲突

bash

运行

git pull origin main  # 拉取时冲突
# 编辑冲突文件(<<<< HEAD 到 >>>> 之间为冲突内容)
git add <冲突文件>
git commit -m "merge: resolve conflicts"
git push origin main

九、注意事项

  1. 提交信息遵循规范(如feat:/fix:/docs:前缀),便于协作;
  2. 敏感信息(密钥、密码)不要提交,通过.gitignore忽略;
  3. 远程推送前先拉取,避免冲突;
  4. 重要操作(如reset --hard)前确认工作区是否有未提交的修改。

这份笔记覆盖 Git 核心命令,结合实际场景使用可加深记忆,进阶用法可参考git help <command>或官方文档~

Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐