当前位置:   article > 正文

GIt Stash_git stash apply unknown option: -encodedcommand

git stash apply unknown option: -encodedcommand

要用到这个储藏功能一般都要用到分支,不然无法发挥其强大。

分支创建

1、创建分支

git branch dev
  • 1

可能会结果如下

$ git branch dev
fatal: Not a valid object name: 'master'.
  • 1
  • 2

这个是因为你创建本仓库以来,还没有过一次commit,本地库还没生成master分支,也就无法识别你所在分支 “ master ” 是个什么鬼了。

这里跟你关联远程库出的问题是一样的原因。

创建并切换。

$ git checkout branch -b dev
  • 1

2、stash的应用(栈,先进后出)
储藏:

$ git stash
  • 1

带名字的储藏:

$ git stash save "this stash message"
  • 1

查看储藏:

$ git stash list
  • 1

应用最新储藏:

$ git stash apply
  • 1

应用指定储藏

$ git stash list
stash@{0}: WIP on master: 2e951a2 add a
stash@{1}: On dev: two stash
stash@{2}: On master: one stash

$ git stash apply stash@{2} # 应用信息为“one stash”的储藏
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

删除指定储藏(不指定删除第一个):

$ git stash drop <stash_code>
  • 1

删除全部储藏:

$ git stash clear
  • 1

补充几点:
(1)stash的数据:
<1>储藏的文件: 工作区的修改(modified)、暂存区里的待提交(committed)
<2>不储藏: 未曾加入版本库的新增文件(untracked)、被忽略文件规则忽略的文件。
PS:关于未曾入库的文件,会在切换分支后继续存在于新的分支中保持untracked的状态。
(2)stash pop
上述的apply均可替换成pop,唯一区别是这条命令会在应用后删除储藏。
(3)- -index参数

$ git stash apply stash@{1} --index
  • 1
$ git stash apply stash@{1}
  • 1

储藏中也有已经添加到暂存区状态的文件,等待提交。

这两条命令

第一条,会保持储藏中的文件保留其暂存区状态,committed

第二条,会将工作区暂存区的文件还原到工作区中,not staged

stash的东西,差不多就这么多了。欢迎补充~

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号