Git 常用命令全指南

作为现代分布式版本控制的核心工具,Git 的命令虽然众多,但约 10–15 条日常命令 就能应对绝大部分协作需求。系统化掌握这些操作,不仅可以提高工作效率,还能避免错误操作导致的版本混乱与团队冲突。

本文分门别类罗列 Git 常用命令,并提供备注说明,最后附上实用建议,帮助你更灵活、高效地运用 Git。

基础配置与仓库初始化

适合首次使用环境或新项目准备阶段:

设置用户信息,只需设置一次,确保提交记录追踪用户身份。

git config --global user.name "你的姓名"

git config --global user.email "邮箱@domain.com"

查看与编辑配置,可检查当前设置,调整别名、颜色输出等项。

git config --list

git config --global -e

初始化本地仓库,若当前目录尚未被版本控制,使用此命令创建 .git 文件夹开始使用。

git init

克隆远程仓库到本地,将远程完整历史复制至本地,适用于协作项目首次 Checkout。

git clone <仓库地址> [本地目录]

工作区与暂存区管理(增删改)

围绕修改、添加、删除和文件移动等基本操作:

查看当前状态

git status 可快速显示暂存区与工作区差异,以及未跟踪或冲突文件。

添加到暂存区,可逐文件添加,也可一次性全部提交准备。

git add file.txt

git add dir/

git add .

分步暂存变更,交互式选择变更块进行提交。

git add -p

删除或取消跟踪文件

git rm file.txt # 删除并提交删除操作

git rm --cached file.txt # 仅取消跟踪但保留本地文件

git mv oldname newname # 重命名并纳入版本管理

提交与版本记录(Commit 相关)

从提交信息撰写、修正到版本回退处理:

标准提交

git commit -m "详细描述变更内容"

自动包括所有已 track 修改(无新增文件)

git commit -a -m "message"

修改上次提交内容或备注,若你忘了添加文件或提交信息打错,可直接修正上次提交。

git commit --amend -m "新的提交说明"

查看变更日志

git log

git log --oneline # 简洁视图

git log --stat # 含每次提交的修改统计

git log --graph --pretty=oneline # ASCII 分支结构图展示

分支管理常见流程

Git 的核心之一是轻量级分支,推荐掌握以下命令:

列出分支

git branch # 仅本地分支

git branch -r # 仅远程分支

git branch -a # 全部分支

创建与切换

git branch feature/new-stuff # 新建分支不切换

git checkout -b feature/xxx # 新建并切换

或者:

git switch -c feature/xxx

切换已有分支

git checkout feature/old

或者:

git switch feature/old

合并分支变更

git merge feature/xyz

摘取指定提交(Cherry-pick)

git cherry-pick

删除分支

git branch -d feature/foo # 已合并安全删除

git branch -D feature/foo # 强制删除

git push origin --delete feature/foo # 删除远程分支

远程仓库同步操作

配合 GitHub、GitLab、Git 服务器协作常用:

查看远程仓库列表

git remote -v

添加新的远程仓库

git remote add origin https://...

抓取远程更新(但不自动合并)

git fetch origin

拉取并合并远程分支到当前分支

git pull origin main

推送本地分支到远程

git push origin main

git push origin main:main # 明确指定分支映射

git push --all # 推送所有本地分支

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

强制覆盖推送(慎用)

git push origin dev --force

标签与版本标记(Tag)

用于标注正式版本或版本里程碑:

查看所有标签

git tag

创建标签

git tag v1.0.0 # 默认签名无说明

git tag -a v1.0.0 -m "说明" # 带注释的标签

查看标签详情

git show v1.0.0

删除标签

git tag -d v1.0.0 # 删除本地

git push origin :refs/tags/v1.0.0 # 删除远程标签

撤销变更与还原技巧

常见错误时的快速恢复方式:

丢弃工作区的修改

git checkout -- file.txt

git restore file.txt # Git 2.23+ 推荐用法

重置暂存区

git reset file.txt

git reset . # 清空全部暂存区变更

回退提交历史(不影响历史记录)

git revert HEAD

彻底回退到某个提交(慎用)

git reset --hard

找回误操作提交记录

git reflog

git reset --hard

暂存区切换(Stash)

临时储存当前修改,便于切换分支或处理紧急事务:

储存当前修改但不提交

git stash

查看 stash 列表

git stash list

恢复最近一次 stash

git stash pop

仅恢复不删除 stash

git stash apply

删除指定 stash

git stash drop stash@<指定stash>

清空所有 stash

git stash clear

仓库清理与维护命令

保持仓库整洁并优化性能:

自动打包与清理垃圾文件

git gc --auto

检查对象完整性

git fsck

列出未被追踪文件,查看被忽略文件情况

git clean -n

git clean -f

别名设置与效率优化建议

为常用命令添加简洁别名,大幅提升效率:

git config --global alias.co checkout

git config --global alias.br branch

git config --global alias.ci commit

git config --global alias.st status

git config --global alias.lg "log --oneline --graph --decorate --all"

这样你就可以使用 git co 检出分支,git lg 查看美化日志。

实战建议:Git 使用场景技巧提示

分支管理:使用 feature/*、bugfix/* 等命名规范,新功能开发使用分支载体,合并到主分支后删除。

合并策略:团队协作常用 git pull --rebase 保持提交历史线性。

Commit 书写规范:尽量写短句 + 描述意图。如:feat: 添加用户登录逻辑。

冲突处理:冲突时优先手动检查,不盲目使用 --ours 或 --theirs 强制覆盖。

主干保护:通过远程分支保护机制(如 GitHub Protect),禁止直接向 main 分支强推。

每日报周期:日终可执行 git fetch; git pull 确保本地代码同步,不错失远程他人提交。

掌握这些 Git 常用命令与实用技巧,相当于拥有了一把轻量、高效、容错能力强的版本管理利器。从基础配置、日常开发流程、到回退清理与团队协作细节,你可以依据项目需求灵活调用。建议每个开发者记住核心 10–15 条命令,剩余命令遇到需求即查(或设别名)。配合良好提交规范与团队协作流程,让 Git 真正成为你工作中的得力助手。