Git - 速查表
为了让我们在使用 Git 时更容易查找和使用最重要的常用命令,以下 速查表 是一个有用的参考指南。
配置
设置将在所有本地仓库中使用的用户数据。
git config --global user.name [firstname lastname]
选择一个能清楚标识我们的姓名,用于查看版本历史时的归属。
git config --global user.email [valid-email]
指定将与每个历史标记关联的电子邮件地址。
git config --global color.ui auto
为了更容易审查,配置 Git 在命令行中自动为命令着色。
设置和初始化
设置用户详情、初始化仓库以及克隆仓库。
git init
将现有目录设置为 Git 仓库。
git clone [url]
使用 URL 从托管位置获取完整的仓库。
暂存和快照
使用 Git 暂存区和快照。
git status
显示工作目录中已更新的文件,这些文件已准备好进行下一次 commit。
git add [file]
将文件当前版本添加到即将进行的 commit(暂存)中。
git reset [file]
取消暂存文件,同时保留工作目录中的更改。
git diff
查看已暂存的更改。
git diff --staged
显示已暂存但尚未 commited 的差异。
git commit -m [descriptive message]
使用已暂存的内容创建新的 commit 快照。
分支和合并
在分支中隔离工作、切换上下文并集成更改。
git branch
列出我们的分支,当前活动分支旁边会有 * 标记。
git branch [branch-name]
在最近一次 commit 后创建新分支。
git checkout
切换到其他分支并将其检出到工作目录。
git merge [branch]
将指定分支的历史合并到当前分支。
git log
显示当前分支的所有 commit 历史。
检查和比较
检查日志、差异和对象数据
git log
显示当前分支的所有 commit 历史。
git log branchB..branchA
显示 branch A 中存在但 branch B 中不存在的 commit。
git log --follow [file]
显示对文件所做的更改,即使在重命名后也是如此。
git diff branchB...branchA
显示 branch A 中的内容与 branch B 中不存在的内容之间的差异。
git show [SHA]
以人类可读格式显示 Git 中的任何对象。
跟踪路径更改
版本控制文件删除和路径修改
git rm [file]
从项目中删除文件并准备进行 commit。
git mv [existing-path] [new-path]
更改现有文件路径并暂存移动操作。
git log --stat -M
显示所有 commit 日志,并标明任何移动的路径。
忽略模式
防止文件被意外暂存或提交。
logs/ *.notes pattern*/
将所需的模式保存到以 .gitignore 结尾的文件中,使用通配符 glob 或直接字符串匹配。
git config --global core.excludesfile [file]
为系统上所有本地仓库忽略模式。
共享和更新
从另一个仓库检索更新并更新本地仓库。
git remote add [alias] [url]
为 Git URL 创建别名。
git fetch [alias]
获取该 Git remote 上的所有分支。
git merge [alias]/[branch]
为了更新我们的分支,将远程分支合并到其中。
git push [alias] [branch]
将本地分支的 commit 传输到远程仓库分支。
git pull
从跟踪的远程分支获取 commit 并合并它们。
重写历史
更改提交、重写分支以及删除历史
git rebase [branch]
将当前分支在指定提交之前的任何提交应用到指定提交上。
git reset --hard [commit]
将当前分支在指定提交之前的任何提交应用到指定提交上。
临时提交
临时存储已更新的跟踪文件,以便切换分支。
git stash
保存已修改和已暂存的更改
git stash list
列出存储文件的栈顺序更改
git stash pop
从 stash 栈顶开始工作
git stash drop
从 stash 栈顶移除修改。