虽然之前学过 Git,不过用的比较少,很多原理也不是很清楚,所以最近是买了个视频,静下心来从零学习了下 Git,不过 Git 用来用去其实也就那几个命令,今天这篇文章,我把那些命令都分类总结了一下(当然,是参考别人的分类的),这些总结大部分来自于我买的一个 Git 鼠标垫,主要是为了以后自己忘记了方便查找。相信这份 Git 宝典,一定值得你收藏。
一、Git 配置相关
如果你首次使用 Git,那刚开始首先是需要配置各种身份信息的,这样当你提交相关任务的时候,别人才能知道这个 commit 是谁提交的。
Git 最小配置
1、配置全局账户,也就是该账户对所有的 Git 仓库都有效
git config --global user.name '你的账户名称' git config --global user.email '你的 Email' 复制代码
2、配置局部账户,也就是该账户只对当前 Git 仓库有效
git config --local user.name '你的账户名称' git config --local user.email '你的 Email' 复制代码
注意,不同点就是一个参数是 global(全局),一个是 local(本地)
3、查看相关配置情况
配置了之后,显然有时候是需要查看我们当前配置的相关情况的,可以使用如下命令
1、查看 global 类型的配置情况
git config --global --list 复制代码
2、查看某个仓库下的配置情况
git config --local --list 复制代码
二、本地基本操作
这部分命令有点多,也是使用的最频繁的命令了,待我一一列举出来,建议收藏
1、基本操作
1、查看变更情况
git status 复制代码
2、查看当前工作在哪个分支上
git branch -v 复制代码
3、切换到指定分支
git checkout 指定分支的名称 复制代码
4、把当前目录及其子目录下所有变更都加入到暂存区
git add . // 注意,add 后面是一个 '.'; 复制代码
5、把仓库内所有变更都假如到暂存区
git add -A 复制代码
6、把指定文件添加到暂存区
git add 文件1 文件2 ... 文件n 复制代码
7、创建正式的 commit,也就是把当前的数据提交上去
git commit 复制代码
2、比较差异
1、比较某文件工作区和暂存区的差异
git diff 某文件 复制代码
2、比较某文件暂存区和 HEAD 的差异
git diff --cache 某文件 复制代码
3、比较工作区和暂存区的所有差异
git diff 复制代码
4、比较暂存区和 HEAD 的所有差异
git diff --cache 复制代码
3、暂存区与工作区之间回滚
1、把工作区指定文件恢复成和暂存区一样
git checkout 文件1 文件2 ... 文件n 复制代码
2、把暂存区指定文件回复和 HEAD 一样
git reset 文件1 文件2 ... 文件n 复制代码
3、把暂存区和工作区所有文件恢复成和 HEAD 一样
git reset --hard 复制代码
4、用 difftool 比较任意两个 commit 的差异
git difftool commit1 commit2 复制代码
注意,从工作区回滚到暂存区则用 checkout ,否则用 reset
4、其他
查看哪些文件没有被 Git 管控
git ls-files --others 复制代码
三、加塞临时任务处理
1、把未处理完的变更先保存到 stash 中
git stash 复制代码
2、临时任务处理完后继续之前的工作
git stash pop // pop 相当于栈的出栈和入栈一样,把之前的任务弹出来 或者 git stash apply // 和 pop 不同的是, apply 相当于从栈顶把任务取出来,但是不过从栈中把任务移除 复制代码
3、查看所有的 stash
git stash list 复制代码
4、取回某次 stash 的变更
git stash pop stash @{数字n} 复制代码
四、修改个人分支历史
我们的仓库的内容每次变更执行 commit 的时候,都会生成一个新的 commit,不过有时候,我们不想产生新的 commit,而是想要通过修改之前的 commit 来变更仓库的内容,那么就可以使用如下命令了
1、修改最后一次 commit
1、在工作区中修改文件 2、git add 3、git commit --amend 复制代码
2|、修改中间的 commit(假设代号为 X)
1. git rebase -i X前面的一个 commit 的 id 2. 在工作区修改文件 3. git add 4. git rebase --contiue 复制代码
五、查看变更日志等
1、当前分支各个 commit 用一行显示
git log --online 复制代码
2、显示最近的 n 个 commit
git log -n 复制代码
3、用图示显示所有的分支历史
git log --online --graph --all 复制代码
4、查看涉及到某文件变更的所有 commit
git log 某文件 复制代码
5、某文件各行最后修改对应的 commit 以及作者
git blame 某文件 复制代码