gitcommit idstash标签03标签04标签05**


版本号

版本号是git管理本地仓时生成的,每一次commit就会生成一个版本号,并且只有在commit时会生成版本号。(reset是将指针指向某一版本号)
一旦生成了版本号,说明git为你提交的文件做了快照,支持你随时切换到这个版本。
这类似于我们玩过的闯关游戏,有时我们会将游戏进度进行保存,方便我们回滚。比如我们在打boss之前做好保存,一旦发现打不过就从保存的进度重新来过。这和git的原理类似,只是git更强大。
使用git reflog命令可以很方便地查看版本号,如下图红方框中的哈希值,就是版本号的缩写。

  1. 命令小结
  2. git log // 查看完整版日志,只能查“过去”
  3. git reflog // 查看简易版日志,能看“过去”和“将来”
  4. git log --pretty=oneline // 让日志一行显示,比git reflog更详细一些

只讲Commit与Stash - 图1
git 支持你通过reset命令随意切换版本号,也就是控制文件版本。其中git reset有三种常用的参数—soft、—hard、—mixed,用于控制不同的版本切换方式,这是git中非常强大、常用的功能,我们下篇文章再讲。
此时你只需知道,只要commit之后,被管理过的代码,你可以随意各种操作。不用担心找不回。

git stash暂存修改

上面说了,只要将文件做了commit,就可以随意增删改查。但有时我们不想commit当前的修改,还想为所欲为,有办法吗?
有!
此时只需要将当前的修改暂存即可,git stash命令可以将工作区的修改暂存起来,让工作区变得干净(不是commit不生成版本号),此时就可以为所欲为而不用担心代码丢失。
比如你正在开发一个新功能,这时需要紧急修改一个bug,但你又不想commit当前的代码,就可以将当前工作存储起来,去修复紧急bug。
推荐使用git stash save ‘说明信息’这一命令在储存的同时,可以添加说明信息。
通过git stash apply可以将最近的存储信息取出。
注意:

  1. stash命令默认只暂存被git追踪的文件,新增加的文件不可以(解决办法见下方)。
  2. stash只存储你最新一次commit之后新增代码。
    1. 命令小结
    2. git stash save ‘说明信息’ // 暂存代码,并添加说明
    3. git stash list // 查看stash列表
    4. git stash apply // 取出最近一次的stash
    5. git stash apply 数字 // 输入list里对应的数字,取出对应的stash
    6. git stash --all // 暂存所有文件,包括没有被git追踪的文件

    小结

    本文主要想说明,git作为一个强大的版本控制工具,通过commit和stash命令,可以让你在工作区为所欲为,而不用担心代码被你搞丢。
    commit提交会生成版本号,用于回滚以提交的代码。stash用于暂存不想提交的代码。

  • 本文作者:GeekPower - Felix Sun
  • 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!