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

june
842 声望24 粉丝

飞书内推:[链接]