| 1 |
git commit |
提交更改到本地仓库。最核心的操作,记录代码快照(常配 -m)。 |
git commit -m "feat: add user login" |
| 2 |
git add |
将更改添加到暂存区。提交前必经之路,精确控制要保存哪些修改。 |
git add . (或 git add src/App.java) |
| 3 |
git push |
推送到远程仓库。将本地分支的更新同步给团队共享的远程服务器。 |
git push origin main |
| 4 |
git pull |
拉取并合并。获取远程最新代码并自动与本地当前分支合并(fetch + merge)。 |
git pull origin main |
| 5 |
git status |
查看工作区状态。最高频的检查命令,明确哪些文件被修改、暂存或未追踪。 |
git status |
| 6 |
git clone |
克隆远程仓库。新员工入职或接手新项目时的第一个拉取源码指令。 |
git clone https://github.com/org/repo.git |
| 7 |
git branch |
分支管理。查看本地/远程分支列表,以及创建或删除本地分支。 |
git branch -a (查看所有分支) |
| 8 |
git switch |
切换分支 (现代推荐)。专门用于切换当前工作分支,语义比 checkout 更明确。 |
git switch feature/login |
| 9 |
git log |
查看提交历史。追溯代码变更记录,常搭配图表参数查看分支拓扑。 |
git log --oneline --graph --all |
| 10 |
git merge |
合并分支。将其他分支(如特性分支)的代码整合到当前所在分支。 |
git merge feature/login |
| 11 |
git fetch |
仅拉取远程更新。安全地获取远程代码变化但不自动合并,适合合并前预览。 |
git fetch origin |
| 12 |
git checkout |
切换/检出 (经典核心)。虽被部分替代,但由于肌肉记忆,仍被海量使用。 |
git checkout -b bugfix/1024 |
| 13 |
git diff |
查看代码差异。对比工作区与暂存区、或两个提交/分支之间的具体代码变更。 |
git diff HEAD~1 |
| 14 |
git stash |
暂存当前进度。临时保存尚未完成的工作,以便干净地切走处理紧急Bug。 |
git stash push -m "wip: auth logic" |
| 15 |
git reset |
重置/撤销。回退版本历史,--hard 会丢弃修改,--soft 会保留修改在暂存区。 |
git reset --hard HEAD~1 |
| 16 |
git rebase |
变基操作。重塑提交历史,将分叉的提交“平铺”为一条直线,保持历史整洁。 |
git rebase main |
| 17 |
git restore |
恢复文件 (现代推荐)。撤销工作区的修改或将文件从暂存区移出。 |
git restore src/config.yml |
| 18 |
git cherry-pick |
挑选并应用提交。从其他分支精准“摘取”某个特定的 commit 应用到当前分支。 |
git cherry-pick a1b2c3d |
| 19 |
git remote |
管理远程仓库。查看、添加或修改关联的远程仓库地址。 |
git remote -v |
| 20 |
git revert |
安全撤销。通过创建一个“反向提交”来抵消某次错误提交,不修改既有历史(适合公共分支)。 |
git revert a1b2c3d |
| 21 |
git reflog |
引用日志 (终极后悔药)。记录本地所有HEAD的变动,可用于找回误删的提交或分支。 |
git reflog |
| 22 |
git blame |
追溯代码作者。查看某个文件的每一行代码是“谁在什么时间、哪个提交”引入的(甩锅利器)。 |
git blame src/utils.java |
| 23 |
git clean |
清理未追踪文件。彻底删除工作区中未被Git管理的文件(常配合 -fd 使用)。 |
git clean -fd |
| 24 |
git tag |
标签管理。为重要的里程碑(如发布版本号 V1.0.0)打上永久标记。 |
git tag -a v1.0.0 -m "Release v1.0.0" |
| 25 |
git config |
配置Git参数。设置用户名、邮箱、别名或换行符处理规则。 |
git config --global user.name "John" |
| 26 |
git show |
查看特定对象详情。显示某个提交的具体改动细节、标签信息等。 |
git show a1b2c3d |
| 27 |
git init |
初始化本地仓库。将一个普通目录转变为 Git 仓库。 |
git init |
| 28 |
git rm |
删除文件并暂存。将文件从工作区和索引中同时移除。 |
git rm obsolete-file.txt |
| 29 |
git bisect |
二分查找排错。自动化地在历史提交中进行二分定位,快速找出引入Bug的那个commit。 |
git bisect start |
| 30 |
git worktree |
多工作树管理。允许在同一个本地仓库外检出多个不同的分支目录,免去频繁切换或克隆。 |
git worktree add ../my-feature feature-x |
| 31 |
git grep |
仓库内文本搜索。极速查找代码库中是否包含某个关键字(性能优于系统grep)。 |
git grep "TODO" |
| 32 |
git submodule |
子模块管理。在一个Git仓库中嵌套并管理其他的独立Git仓库(常用于共享依赖)。 |
git submodule update --init --recursive |
| 33 |
git shortlog |
日志汇总摘要。按作者将提交记录进行分组统计,常用于生成Release Notes。 |
git shortlog -sn |
| 34 |
git mv |
移动/重命名文件。让Git直接记录文件的重命名轨迹,而不是当成“删除+新建”。 |
git mv old_name.txt new_name.txt |
| 35 |
git archive |
导出代码包。将指定分支或提交打包为zip/tar压缩文件,不包含 .git 目录。 |
git archive -o latest.zip HEAD |
| 36 |
git gc |
垃圾回收优化。清理不必要的文件并优化本地仓库,提升Git运行速度。 |
git gc --prune=now |
| 37 |
git push --force-with-lease |
安全强推。比普通强推 (-f) 更安全的选项,若远程已被他人更新则会拒绝覆盖。 |
git push --force-with-lease origin main |
| 38 |
git describe |
生成易读的版本号。基于最近的标签(tag)和提交哈希,生成当前代码库的唯一可读名称。 |
git describe --tags |
| 39 |
git help |
查阅帮助文档。在终端快速调出任意Git命令的官方手册。 |
git help rebase |
| 40 |
git apply |
应用补丁。读取 .patch 文件并将其中的修改应用到当前工作区。 |
git apply fix-bug.patch |
| 41 |
git format-patch |
生成补丁文件。将历史提交转换为可通过邮件发送或分享的标准补丁文件。 |
git format-patch -1 HEAD |
| 42 |
git am |
应用邮箱补丁。接收并应用 format-patch 生成的补丁,同时保留作者和提交信息。 |
git am < patch-file |
| 43 |
git rev-parse |
解析引用为哈希值。底层指令,常用于CI/CD脚本中获取当前分支对应的完整commit id。 |
git rev-parse HEAD |
| 44 |
git fsck |
检查仓库完整性。校验数据库中对象的连通性和有效性,排查底层损坏。 |
git fsck --full |
| 45 |
git bundle |
打包仓库离线传输。将整个历史或部分历史打包成单一文件,用于物理隔离网络间的代码同步。 |
git bundle create repo.bundle --all |
| 46 |
git notes |
添加提交附注。在不改变原始commit对象(哈希不变)的前提下,为提交补充额外的信息。 |
git notes add -m "Reviewed-by: Admin" |