git 可以说是目前最优秀的代码版本管理工具,团队开发是少不了的。本文会介绍一些常用的 git 命令。
git 仓库划分了 3 类区域,分别是: 工作区,暂存区,分支(master 及 其他分支)
工作区 简单来说就是我们仓库的当前目录
暂存区 和 分支 在 仓库主目录的 .git 这个隐藏目录中
git init 目录
将指定目录初始化为 git 仓库git clone 仓库地址
拉取远程仓库到当前目录git clone -b 分支名称 仓库地址
拉取远程仓库的指定分支到当前目录
1、git status
查看仓库的状态,会显示工作区和暂存区的状态
比如:工作区有修改,有新文件,未添加到暂存区。或者暂存区有操作未提交到分支
2、git add 文件/目录
将文件,目录添加到暂存区
3、git commit -m '本次代码更新的注释'
将暂存区的操作,提交到当前分支(一般都是默认的 master 分支)
所以你在工作区的操作,如果没有 add 到暂存区,是不会被提交到分支的
4、git log
查看分支提交历史git log --oneline
更简洁易懂的方式查看历史git log -n
查看最近 n 条历史git log --stat
查看历史的详细信息,那些文件有变更,分别添加、删除、修改了多少行git log -p
查看历史的详细信息,比 –stat 更加详细,会把每个文件变更的内容列出来,比如添加的 3 行内容是什么。
参数可以组合,git log -2 -p
查看最近 2 条历史的详细信息
5、撤销操作
a、新建了文件,还未添加到暂存区,不想要了。直接删除这个新文件即可。
b、已经纳入版本管理的文件,在工作区做了修改,还未添加到暂存区。使用 git checkout -- 文件
撤销工作区的修改,回到上次添加到暂存区的状态。
c、已经纳入版本管理的文件,在工作区做了修改,而且已经添加到了暂存区。这时候即需要撤销暂存区的状态,又需要撤销工作区的操作,对应也有两条命令。
撤销暂存区状态:git reset HEAD
撤销工作区修改:git checkout -- 文件
5、HEAD 指的是当前分支的当前版本。
git reset HEAD 是将暂存区回到当前分支当前版本
的状态。这点比较绕,暂存区还未提交到分支,所以暂存区的文件相比分支的当前版本
是要新的。
–hard 参数,覆盖工作区和暂存区
git reset –hard HEAD 使用 当前分支当前版本 的状态覆盖暂存区和工作区。会导致工作区所有最近的操作都撤销。所以如果你只是想撤销某一个文件的修改,别用这个命令。
git reset HEAD~1 回到 当前分支的前一个版本
,数字 1 也可以改成 2,3,4,5…
git reset 版本号 也能回到指定版本
6、git reflog
查看操作记录
7、删除文件
a、git rm 文件
从工作区删除文件,并且将删除记录到暂存区。
相当于两个步骤 rm 文件
从工作区删除文件,再 git add 文件
将删除记录到暂存区。
b、git commit -m '注释'
将暂存区变更提交到分支,从而在分支上也删除文件
如果文件有修改,记录并未添加到暂存区,或者添加到了暂存区,并未提交到分支。
git rm 文件 会失败,需要用 git rm 文件 -f
强制删除
8、比较文件git diff [文件]
比较工作区和暂存区git diff --staged [文件]
比较暂存区和分支
9、重命名,移动git mv 旧文件 新文件
既可以命名,又可以移动。实际相当于两个步骤git rm 旧文件
再 git add 新文件
配置 git 命令简写,当然你还可以配置的更多
git config --global alias.st status
git config --global alias.co checkout
git config --global alias.ci commit
或者 vim ~/.gitconfig
在最后面添加
[alias]
st = status
co = checkout
ci = commit