Git 常用命令详解
1. 修改提交信息
git commit --amend
修改最后一次提交的提交说明。适合修正提交信息或补充文件。
2. 工作区与版本库
-
工作区 (Working Directory)
包含.git目录的地方称为工作区,即开发人员工作的本地目录。 -
版本库 (Repository)
.git目录内保存了版本控制的元数据和对象数据库。
3. 使用 git rev-parse 查看路径信息
-
git rev-parse --git-dir
显示版本库.git目录的具体位置。 -
git rev-parse --show-toplevel
显示工作区的根目录路径。 -
git rev-parse --show-prefix
显示当前目录相对于工作区根目录的相对路径。 -
git rev-parse --show-cdup
显示从当前目录回退到工作区根目录需要的路径深度(../形式)。
4. 配置文件的区别
-
git config --global
配置当前用户的全局 Git 设置,存储在用户主目录下的~/.gitconfig文件中。 -
git config --system
配置系统级的 Git 设置,存储在/etc/gitconfig文件中,对所有用户有效。 
5. 修正作者和提交信息
git commit --amend --allow-empty --reset-author
修改最后一次提交的作者信息和提交说明,即使没有文件改动。
6. 查看完整日志信息
git log --pretty=full
显示完整的日志信息,包括作者、提交者、日期和完整的提交说明。
7. 工作区与暂存区:
HEAD 相关操作
-
HEAD^或HEAD~1
指向最近一次提交的父提交。 -
HEAD^^或HEAD~2
指向HEAD^的父提交,即向上两次的提交记录。 -
HEAD^{tree}
指向某次提交的树对象(Tree Object),通常用于查看提交对应的文件结构。
Git Reset 使用详解
-
git reset HEAD
将暂存区中的修改(由git add添加)撤销,但不影响工作区的修改内容。 -
git reset -- <file>
撤销指定文件<file>的暂存状态,相当于撤销对该文件的git add操作。 -
git reset --soft HEAD
撤销最近一次的提交(git commit),将内容保留在暂存区,不影响工作区。
撤销提交
git commit --amend等效于以下两步操作:git reset --soft HEAD^:撤销最近一次提交,但保留内容在暂存区。git commit -m "xxx":使用新的提交信息重新提交。
分离头指针状态 (Detached HEAD)
分离头指针状态指的是 HEAD 指向了一个具体的提交 ID,而不是一个分支(引用)。
- 在这种状态下,可以查看或操作某次特定的提交,但不能直接在当前分支上提交新的更改。
进入分离头指针状态的示例
Git Merge
git merge <branch>
将指定分支<branch>合并到当前分支。
合并类型:
-
快进合并 (Fast-forward)
当前分支与目标分支无分叉,直接将当前分支指针移动到目标分支的位置。 -
普通合并 (Recursive Merge)
两分支有分叉,Git 会创建一个新的合并提交。

在GITK中,黄色为tag, 绿色为分支名称。


浙公网安备 33010602011771号