• 推荐
  • 前端
  • 后端
  • Android
  • IOS
  • 人工智能

2021-09-02关注

「03」Git之add、branch、stash和checkout命令

前言

从本章开始,为了便于描述,我们做出如下约定。
凡是<>内的内容皆为自定义内容,部分名词含义如下
<localBranch>          指本地已有分支
<originBranch>         指远程分支
<branchName>             指分支名称
<repoAddress>           指仓库地址
<commit>                     指某个commit记录
origin                        指远程仓库
本章节主要讲述 add、branch、stash和checkout命令

add命令

作用

用来确定将那些文件放在暂存区中,这些文件将包含在下一次提交中

用法

  1. git add 文件路径+文件    例如:git add foo.txt git add file/bar.txt
  2. git add .    或者 git add --all   将所有文件添加到暂存去中

branch命令

作用

主要是用来查看、新建和删除分支

用法

  1. git branch 查看本地分支,带有*的表示我们当前所在的分支
  2. git branch <branchName> 新建一个本地分支,但不会自动切换到信分支上
  3. git branch <brancName> <commit> 为某个commit记录创建一个分支
  4. git branch <brancName> <localBranch> 从某个分支新建一个分支
  5. git branch -d <localBranch> 删除本地该分支(不能删除当前所在的分支,不能删除没有合并到master上的分支)
  6. git branch -D <localBranch> 删除本地该分支(不能删除当前所在的分支,可以删除没有合并到master上的分支)
  7. git branch <branchName> <commit> 在已知commit的情形下,将某个被删除的分支进行复原

这里说一下关于commit版本的问题,我们输入git log 会显示最近的一部分提交历史,在这里我们能查看我们的commit
image.png
从图中我们可以看出,我们的commit是一个很长的16位的散列值,但其实我们在使用的时候,只需要截取前八位就行了,即631a6b33。之所以取前八位,是因为这里面已经包含了作者,以及提交的时间这一系列信息,作者+时间这两个信息生成的散列值会重复的概率以及微乎其微了。

stash命令

作用

暂时贮存代码

用法

  1. git stash 贮存当前改动
  2. git stash list 查看贮存列表
  3. git stash pop 应用某个贮存(默认第一个),即git stash pop stash@{0} 并删除该贮存,可修改最后的数字,来指定应用某个贮存
  4. git stash apply 应用某个贮存(默认第一个),即 git stash apply stash@{0},不会删除贮存,可修改最后的数字,来指定应用某个贮存
  5. git stash drop 删除某个贮存(默认第一个),即git stash drop stash@{0} 可修改最后的数字,来指定删除某个贮存
  6. git stash show 查看某个贮存(默认第一个)做了那些改动,即 git stash show stash@{0} 可修改最后的数字,来指定查看某个贮存
  7. git stash clear 删除所有贮存

注意⚠️:没有在git 版本控制中的文件,是不能被git stash 存起来的

出现上述情形我们该怎么办呢?其实很简单,我们指需要使用add命令将它添加到暂存区中就可以对它使用stash命令了

checkout命令

作用

切换分支

用法

  1. git checkout <branchName> 切换到某个分支
  2. git checkout --force <branchName> 强制切换到某个分支,会丢失当前已修改的内容
  3. git checkout -b <branchName> 创建并切换到新分支

当我们本地存在修改时,切换分支这个操作很大可能是会被拒绝的,此时我们可以

  1. 先提交修改
  2. 使用stash命令先暂存起来,之后在用stash pop来恢复他们

什么时候不会被拒绝呢?只有当前两个分支处于同一个版本时,才不会拒绝checkout操作。也就是说如下操作是合法的。

  1. 假设我们现在在a分支上,并在A分支上做出未提交的修改
  2. 接下来做出如下操作 git checkout -b B
  3. 此时我们是能切换成功的,并且我们所做出的修改也一并带了过来
  4. 此时我们在切换回A分支也是没有任何问题的,当然,我们所做出的修改也会跟着一起过来

总结

本章节主要讲述 add、branch、stash和checkout命令的作用、用法以及一些注意事项,带大家对这些命令有一个更深入的理解。

往期文章

「02」Git之.gitignore文件配置
「01」Git之版本控制​

云星球用户

关于

京ICP备2021005633号-1

京公网安备11010502044331号

站长电话:18401753012

举报邮箱: 761292449@qq.com

云星球 @ 2025

生活影视公众号

circle-left3 circle-left4 new-tab github