前言
从本章开始,为了便于描述,我们做出如下约定。
凡是<>
内的内容皆为自定义内容,部分名词含义如下
<localBranch>
指本地已有分支
<originBranch>
指远程分支
<branchName>
指分支名称
<repoAddress>
指仓库地址
<commit>
指某个commit记录
origin
指远程仓库
本章节主要讲述 add
、branch
、stash
和checkout
命令
add命令
作用
用来确定将那些文件放在暂存区中,这些文件将包含在下一次提交中
用法
- git add 文件路径+文件 例如:
git add foo.txt
git add file/bar.txt
git add .
或者 git add --all
将所有文件添加到暂存去中
branch命令
作用
主要是用来查看、新建和删除分支
用法
git branch
查看本地分支,带有*的表示我们当前所在的分支
git branch <branchName>
新建一个本地分支,但不会自动切换到信分支上
git branch <brancName> <commit>
为某个commit记录创建一个分支
git branch <brancName> <localBranch>
从某个分支新建一个分支
git branch -d <localBranch>
删除本地该分支(不能删除当前所在的分支,不能删除没有合并到master上的分支)
git branch -D <localBranch>
删除本地该分支(不能删除当前所在的分支,可以删除没有合并到master上的分支)
git branch <branchName> <commit>
在已知commit的情形下,将某个被删除的分支进行复原
这里说一下关于commit版本的问题,我们输入git log
会显示最近的一部分提交历史,在这里我们能查看我们的commit

从图中我们可以看出,我们的commit是一个很长的16位的散列值,但其实我们在使用的时候,只需要截取前八位就行了,即631a6b33
。之所以取前八位,是因为这里面已经包含了作者,以及提交的时间这一系列信息,作者+时间这两个信息生成的散列值会重复的概率以及微乎其微了。
stash命令
作用
暂时贮存代码
用法
git stash
贮存当前改动
git stash list
查看贮存列表
git stash pop
应用某个贮存(默认第一个),即git stash pop stash@{0}
并删除该贮存,可修改最后的数字,来指定应用某个贮存
git stash apply
应用某个贮存(默认第一个),即 git stash apply stash@{0}
,不会删除贮存,可修改最后的数字,来指定应用某个贮存
git stash drop
删除某个贮存(默认第一个),即git stash drop stash@{0}
可修改最后的数字,来指定删除某个贮存
git stash show
查看某个贮存(默认第一个)做了那些改动,即 git stash show stash@{0}
可修改最后的数字,来指定查看某个贮存
git stash clear
删除所有贮存
注意⚠️:没有在git 版本控制中的文件,是不能被git stash 存起来的
出现上述情形我们该怎么办呢?其实很简单,我们指需要使用add
命令将它添加到暂存区中就可以对它使用stash
命令了
checkout命令
作用
切换分支
用法
git checkout <branchName>
切换到某个分支
git checkout --force <branchName>
强制切换到某个分支,会丢失当前已修改的内容
git checkout -b <branchName>
创建并切换到新分支
当我们本地存在修改时,切换分支这个操作很大可能是会被拒绝的,此时我们可以
- 先提交修改
- 使用stash命令先暂存起来,之后在用stash pop来恢复他们
什么时候不会被拒绝呢?只有当前两个分支处于同一个版本时,才不会拒绝checkout操作。也就是说如下操作是合法的。
- 假设我们现在在a分支上,并在A分支上做出未提交的修改
- 接下来做出如下操作
git checkout -b B
- 此时我们是能切换成功的,并且我们所做出的修改也一并带了过来
- 此时我们在切换回A分支也是没有任何问题的,当然,我们所做出的修改也会跟着一起过来
总结
本章节主要讲述 add
、branch
、stash
和checkout
命令的作用、用法以及一些注意事项,带大家对这些命令有一个更深入的理解。
往期文章
「02」Git之.gitignore文件配置
「01」Git之版本控制