掌握这些命令,告别Git恐惧症
前言
Git作为目前最流行的版本控制系统,几乎是每个程序员的必备技能。本文将常用Git命令进行了系统分类和总结,建议收藏备用。
一、仓库初始化与克隆
bash
# 在当前目录初始化一个新的Git仓库 git init # 克隆远程仓库到本地 git clone <仓库地址> # 克隆指定分支 git clone -b <分支名> <仓库地址>
二、基础操作(日常高频使用)
bash
# 查看当前状态 git status # 添加文件到暂存区 git add <文件名> # 添加单个文件 git add . # 添加所有变更 git add *.txt # 添加所有txt文件 # 提交到本地仓库 git commit -m "提交说明" # 提交并跳过暂存区(直接提交所有已跟踪文件的修改) git commit -a -m "提交说明" # 查看提交历史 git log # 完整历史 git log --oneline # 简洁一行显示 git log --graph # 图形化显示分支
三、远程仓库操作
bash
# 添加远程仓库 git remote add origin <仓库地址> # 查看远程仓库 git remote -v # 推送到远程 git push origin <分支名> # 推送指定分支 git push -u origin <分支名> # 首次推送并建立关联 git push --all origin # 推送所有分支 # 从远程拉取 git pull origin <分支名> # 拉取并合并 git fetch origin <分支名> # 仅拉取,不合并 # 克隆远程仓库 git clone <仓库地址>
四、分支管理
bash
# 查看分支 git branch # 本地分支 git branch -r # 远程分支 git branch -a # 所有分支 # 创建分支 git branch <分支名> # 创建分支 git checkout -b <分支名> # 创建并切换分支 git switch -c <分支名> # Git 2.23+ 新语法 # 切换分支 git checkout <分支名> # 传统方式 git switch <分支名> # 新方式 # 合并分支 git merge <分支名> # 将指定分支合并到当前分支 # 删除分支 git branch -d <分支名> # 删除本地分支(已合并) git branch -D <分支名> # 强制删除 git push origin --delete <分支名> # 删除远程分支
五、撤销与回退
bash
# 撤销工作区的修改(未add) git checkout -- <文件名> # 传统方式 git restore <文件名> # Git 2.23+ 新方式 # 撤销暂存区的修改(已add未commit) git reset HEAD <文件名> # 传统方式 git restore --staged <文件名> # 新方式 # 回退提交版本 git reset --soft HEAD~1 # 回退,保留修改在工作区 git reset --mixed HEAD~1 # 回退,保留修改在暂存区(默认) git reset --hard HEAD~1 # 回退,丢弃所有修改 # 撤销某次提交(生成新的反向提交) git revert <commit-id> # 修改上一次提交信息 git commit --amend -m "新的提交信息" # 往上一次提交添加遗漏文件 git add <遗漏文件> git commit --amend --no-edit
六、查看差异
bash
# 查看工作区与暂存区的差异 git diff # 查看暂存区与最新提交的差异 git diff --staged git diff --cached # 查看工作区与最新提交的差异 git diff HEAD # 查看两个提交之间的差异 git diff <commit-id1> <commit-id2> # 查看两个分支的差异 git diff branch1..branch2
七、暂存与清理
bash
# 暂存当前修改 git stash save "暂存说明" git stash push -m "暂存说明" # 查看暂存列表 git stash list # 恢复暂存(恢复后不删除暂存记录) git stash apply # 恢复暂存(恢复后删除暂存记录) git stash pop # 删除指定暂存 git stash drop stash@{0} # 清空所有暂存 git stash clear八、标签管理
bash
# 创建标签 git tag v1.0.0 # 轻量标签 git tag -a v1.0.0 -m "说明" # 附注标签 # 查看标签 git tag # 列出所有标签 git show v1.0.0 # 查看标签详情 # 推送标签到远程 git push origin v1.0.0 # 推送单个标签 git push origin --tags # 推送所有标签 # 删除标签 git tag -d v1.0.0 # 删除本地标签 git push origin --delete v1.0.0 # 删除远程标签
九、配置命令
bash
# 设置用户信息 git config --global user.name "你的名字" git config --global user.email "你的邮箱" # 查看配置 git config --list # 所有配置 git config user.name # 查看用户名 # 设置别名(提高效率) git config --global alias.co checkout git config --global alias.br branch git config --global alias.st status git config --global alias.lg "log --oneline --graph" # 设置默认编辑器 git config --global core.editor "code --wait" # VS Code
十、实用命令速查表
| 操作 | 命令 | 说明 |
|---|---|---|
| 查看状态 | git status -s | 简洁模式 |
| 查看历史 | git log --oneline --graph --all | 图形化所有分支 |
| 查看某文件历史 | git log -p <文件名> | 显示每次修改的差异 |
| 查找责任人 | git blame <文件名> | 查看每行代码的修改者 |
| 搜索提交 | git grep "关键词" | 搜索代码中的关键词 |
| 查看简短统计 | git shortlog -sn | 按提交数量排序 |
十一、常见场景示例
场景1:提交错了,想撤回重新提交
bash
git reset --soft HEAD~1 # 撤回提交,修改回到暂存区 git add . git commit -m "新的提交信息"
场景2:代码丢了,想找回
bash
git reflog # 查看所有历史操作 git reset --hard <commit-id> # 恢复到指定版本
场景3:解决冲突
bash
git pull origin main # 拉取时出现冲突 # 手动编辑冲突文件,删除 <<<<<<< ======= >>>>>>> 标记 git add . git commit -m "解决冲突"
场景4:合并某次特定提交
bash
git cherry-pick <commit-id> # 只合并某次提交
十二、.gitignore 常用模板
gitignore
# 依赖目录 node_modules/ vendor/ # 编译产物 dist/ build/ *.class *.pyc # IDE配置 .vscode/ .idea/ *.swp # 环境变量 .env .env.local # 日志文件 *.log # 操作系统文件 .DS_Store Thumbs.db
总结
掌握以上Git命令,基本可以应对日常开发中的绝大多数场景。建议:
由浅入深:先从最常用的
git add、git commit、git push、git pull开始勤于练习:在自己的项目中多操作,形成肌肉记忆
善用别名:为常用命令设置简短别名,提高效率
注意安全:
git reset --hard慎用,建议先git stash或备份
📌 提示:Git 版本在 2.23+ 后引入了
git switch和git restore命令,比传统的git checkout职责更清晰,建议逐渐适应新语法。
本文命令均在Git 2.x版本验证通过,如有问题欢迎评论区交流!
如果觉得有用,别忘了点赞收藏哦~