每位软件工程师使用的15个Git命令(以及它们为何比你想象的更重要)

发布: (2026年1月20日 GMT+8 14:06)
8 min read
原文: Dev.to

Source: Dev.to

介绍

很长一段时间,我一直把 Git 当成必须忍受的东西——输入一个命令,记住它,然后祈祷它能正常工作。它让人感到畏惧,因为 Git 会记住每一次错误,但一旦你不再把它当成魔法,也不把它当成在评判你,学习它的压力就会大大减轻。你不需要 50 条命令;只要冷静、刻意地使用 15 条核心命令,就能覆盖绝大多数真实工作流。

git status — 检查仓库当前状态

显示哪些文件已修改、已暂存、未跟踪或已准备提交。

git status

常见错误
直接运行 git status 后就提交或删除了错误的文件,因为没有先核对输出结果。

git init — 初始化一个新的 Git 仓库

通过在项目目录中添加版本控制跟踪,创建一个新的 Git 仓库。

git init

常见错误
在已经初始化的仓库内部再次运行 git init,会生成嵌套的 .git 文件夹,导致 Git 混乱。

git clone — 本地复制远程仓库

下载远程仓库并创建完整的本地副本,包括提交历史。

git clone 

git add — 将更改暂存以备下次提交

把文件的改动移入暂存区,以便在下一次提交时包含这些改动。

git add .          # 暂存当前目录下的所有内容
git add *          # 暂存所有文件(如果 shell 展开它们,包括隐藏文件)
git add -A         # 暂存所有改动,包括删除的文件

常见错误
盲目使用 git add .,不小心把本不想提交的文件(例如大二进制文件或机密)也暂存进来了。

git commit — 保存更改的快照

将已暂存的更改记录为项目历史中的一次快照,并附上描述性信息。

git commit -m "你的简洁、描述性的提交信息"

常见错误
提交时没有写有意义的说明,或忘记先暂存想要提交的更改。

git log — 查看提交历史

列出之前的提交,显示更改、作者和时间戳等信息。

git log
git log --oneline --graph --decorate   # 紧凑、可视化的视图

常见错误
误以为 git log 只显示当前分支的历史;实际上它会包含来自其他分支的合并提交,除非进行过滤。

git diff — 查看具体改动

逐行显示文件版本、提交或分支之间的差异。

git diff                # 未暂存的改动
git diff --staged       # 已暂存的改动
git diff HEAD~1 HEAD    # 两次提交之间的改动

常见错误
跳过对 git diff 的检查,直接提交代码,却不知道到底改了什么。

git branch — 管理并行开发

创建、列出、重命名或删除用于独立开发的分支。

git branch               # 列出分支
git branch feature-x     # 创建新分支
git branch -d old-branch  # 删除分支

常见错误
直接在 main(或 master)上工作,而不创建特性分支,容易导致历史交叉混乱。

git checkout / git switch — 安全切换分支

两个命令都可以切换分支;git switch 是更新、更直观的写法。

git checkout feature-x          # 传统语法
git switch feature-x             # 推荐语法
git checkout  -- <file>  # 从特定提交恢复文件

常见错误
使用 git checkout 恢复文件时未指定提交,导致意外丢失本地修改。

git merge — 合并不同分支的改动

把一个分支的改动合并到另一个分支,合并它们的历史。

git checkout main
git merge feature-x

常见错误
合并前没有先拉取最新的远程改动,容易产生不必要的冲突。

git pull — 更新本地仓库

从远程仓库获取改动并将其合并到本地。

to your current branch (by merge or rebase, depending on configuration).

git pull               # default (usually merge)
git pull --rebase      # rebase instead of merge

Common mistake
在工作区有未提交更改的情况下运行 git pull,可能导致合并冲突或中止操作。

git push — 与他人共享提交

将本地提交上传到远程仓库,以便他人访问它们。

git push origin main
git push -u origin feature-x   # set upstream tracking

Common mistake
推送未经审查的提交,或推送会重写共享历史的提交(例如在 git reset --hard 之后)。

git stash — 临时保存未完成的工作

存储未提交的更改,以便你可以返回到干净的工作目录。

git stash               # save current changes
git stash list          # view saved stashes
git stash pop           # reapply the most recent stash and remove it
git stash apply stash@{2}  # apply a specific stash without dropping it

Common mistake
忘记应用或删除 stash,导致隐藏的更改在以后引起混乱。

git reset — 有控制地撤销更改

移动当前分支指针,并可选地更新暂存区和工作目录。

git reset --soft HEAD~1   # keep changes staged
git reset --mixed HEAD~1  # default: keep changes unstaged
git reset --hard HEAD~1   # discard all changes

Common mistake
在未意识到会永久丢弃工作内容的情况下使用 --hard,尤其在共享分支上。

git revert — 在共享历史中安全地撤销更改

创建一个新提交,撤销先前提交的效果,而不重写历史。

git revert 

Common mistake
在共享分支上选择使用 git reset 而不是 git revert,这会重写历史并干扰团队成员。

构建对 Git 的信心

Git 的信心不会凭空出现;它会随着你有意识地使用一套核心命令而逐步提升。总有一天,你会不再惊慌,毫不犹豫地运行 git status,并且清楚每个命令的作用。

Tip: 避免盲目复制命令。理解每个操作背后的意图,让 Git 成为你信赖的工具,而不是焦虑的来源。

提交愉快! 💙

Back to Blog

相关文章

阅读更多 »

Git Bash 与 GitHub 初学者入门

Git 是一种免费、开源的版本控制系统,用于随时间跟踪代码或任何文件的更改。它让开发者能够: - 在项目上工作…

Git 初学者指南

介绍 Git 是一个免费、开源的版本控制系统,开发者和分析师用它来跟踪更改、协作以及管理项目历史……

Git Bash 和 GitHub 简介

定义 - Git 是一种广泛使用的免费开源系统,旨在处理各种规模的项目。它使开发者能够跟踪代码的更改和 f...