Git 命令大全笔记
·
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
九、注意事项
- 提交信息遵循规范(如
feat:/fix:/docs:前缀),便于协作; - 敏感信息(密钥、密码)不要提交,通过
.gitignore忽略; - 远程推送前先拉取,避免冲突;
- 重要操作(如
reset --hard)前确认工作区是否有未提交的修改。
这份笔记覆盖 Git 核心命令,结合实际场景使用可加深记忆,进阶用法可参考git help <command>或官方文档~
更多推荐


所有评论(0)