前言
从本章开始,为了便于描述,我们做出如下约定。
凡是<>内的内容皆为自定义内容,部分名词含义如下
<localBranch> 指本地已有分支
<originBranch> 指远程分支
<branchName> 指分支名称
<repoAddress> 指仓库地址
<commit> 指某个commit记录
origin 指远程仓库
本章节主要讲述 add、branch、stash和checkout命令
add命令
作用
用来确定将那些文件放在暂存区中,这些文件将包含在下一次提交中
用法
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命令的作用、用法以及一些注意事项,带大家对这些命令有一个更深入的理解。