Git 命令速查表

按关键词(分支、提交、rebase、stash 等)快速查找 Git 命令,按类别整理,每条命令都有复制按钮,可直接粘贴到终端。

开始

git init
在当前文件夹中初始化一个新的 Git 仓库。
git clone <url>
将远程仓库克隆到新的本地文件夹。
git config --global user.name "Nom"
设置全局的提交作者名称。
git config --global user.email "email"
设置全局的提交作者邮箱。

状态与历史

git status
显示已修改、已添加或未跟踪的文件。
git log
显示提交历史。
git log --oneline --graph --all
带分支图的精简历史。
git diff
显示尚未暂存的修改。
git diff --staged
显示已暂存(staged)的修改。
git show <commit>
显示指定提交的详细信息。

修改

git add <fichier>
将文件添加到暂存区。
git add -A
添加所有已修改、已添加和已删除的文件。
git commit -m "message"
用已暂存的文件创建一个提交。
git commit --amend
修改最近一次提交(消息和/或内容)。
git restore <fichier>
撤销某个文件尚未暂存的修改。
git restore --staged <fichier>
将文件从暂存区移除,同时保留修改。
git rm <fichier>
删除文件并暂存该删除操作。

分支

git branch
列出本地分支。
git branch <nom>
创建一个新分支。
git switch <branche>
切换当前分支。
git switch -c <branche>
创建分支并立即切换到该分支。
git branch -d <branche>
删除已合并的本地分支。
git branch -D <branche>
强制删除本地分支,即使尚未合并。

合并与 rebase

git merge <branche>
将一个分支合并到当前分支。
git rebase <branche>
将当前分支的提交在另一个基底上重新应用。
git rebase -i HEAD~n
对最近 n 个提交进行交互式 rebase(重新排序、squash 等)。
git cherry-pick <commit>
将指定提交应用到当前分支。

远程

git remote -v
列出已配置的远程仓库。
git fetch
获取远程引用,但不合并。
git pull
获取并合并远程的更改。
git push
将本地提交推送到远程仓库。
git push -u origin <branche>
推送分支并将其设为跟踪分支。
git push --force-with-lease
强制推送,比常规的 --force 更安全。

取消

git reset --soft HEAD~1
撤销最近一次提交,同时保留已暂存的更改。
git reset --mixed HEAD~1
撤销最近一次提交,同时保留未暂存的更改。
git reset --hard HEAD~1
撤销最近一次提交,并永久丢弃其更改。
git revert <commit>
创建一个新提交,抵消之前某个提交的效果。

暂存(stash)

git stash
临时搁置当前正在进行的修改。
git stash pop
重新应用最近一次 stash,并将其从列表中移除。
git stash list
列出已保存的 stash。

标签

git tag
列出现有的标签。
git tag -a v1.0.0 -m "message"
创建一个附注标签。
git push origin --tags
将所有本地标签推送到远程仓库。

工作原理

约四十条常用 Git 命令按类别整理(起步、状态与历史、分支、合并与 rebase、远程、撤销、stash、标签)。在搜索栏中输入关键词 —— 命令名称(rebase)、概念(「撤销」、「合并」)或类别 —— 即可实时筛选列表,然后点击所需命令旁边的「复制」,直接粘贴到终端中。

git fetch 和 git pull 有什么区别?

git fetch 会下载远程仓库的新引用,但不会修改您的本地分支,让您有时间在合并之前先检查这些更改。git pull 则在此基础上,根据配置自动将这些更改合并(或 rebase)到当前分支。

什么时候该用 git reset 而不是 git revert?

对于尚未共享的分支,使用 git reset 来改写历史(或在与团队协调的前提下谨慎使用);对于已经推送、可能已被他人使用的提交,使用 git revert 来干净地撤销,因为它会新增一个撤销提交,而不会改写现有历史。

这份速查表完全是静态的,页面加载后可离线使用:不会向服务器发送任何数据,包括您的搜索内容。