代码改完了才发现分支错了,怎么办?

结论:使用git stash 暂存代码,在切换分支,恢复暂存的代码到工作区间,但是需要解决冲突。

 

git  stash 操作详解

常用git stash命令:

(1)git stash save "save message"  : 执行存储时,添加备注,方便查找,只有git stash 也要可以的,但查找时不方便识别。

(2)git stash list  :查看stash了哪些存储

(3)git stash show :显示做了哪些改动,默认show第一个存储,如果要显示其他存贮,后面加stash@{$num},比如第二个 git stash show stash@{1}

(4)git stash show -p : 显示第一个存储的具体改动,如果想显示其他存存储,命令:git stash show  stash@{$num}  -p ,比如第二个:git stash show  stash@{1}  -p

(5)git stash apply :应用某个存储,但不会把存储从存储列表中删除,默认使用第一个存储,即stash@{0},如果要使用其他个,git stash apply stash@{$num} , 比如第二个:git stash apply stash@{1} 

(6)git stash pop :命令恢复之前缓存的工作目录,将缓存堆栈中的对应stash删除,并将对应修改应用到当前的工作目录下,默认为第一个stash,即stash@{0},如果要应用并删除其他stash,命令:git stash pop stash@{$num} ,比如应用并删除第二个:git stash pop stash@{1}

(7)git stash drop stash@{$num} :丢弃stash@{$num}存储,从列表中删除这个存储

(8)git stash clear :删除所有缓存的stash

 

说明:新增的文件,直接执行stash是不会被存储的,举例如下:

代码改完了才发现分支错了,怎么办?

如上图:在git status 那一步很明显可以看出来,我修改了README,添加了新文件abc.txt,然后执行了git stash save后,在执行git stash list 可以看到刚才的save是的信息,然后使用git stash show ,只显示了README的改动被存起来了。

我们知道,执行了git statsh 以后,被存起来的在当前目录再执行git status 就看不到了,但是我们现在再执行git status,如下:

代码改完了才发现分支错了,怎么办?

这个文件还在,说明没有被存起来。说白了就是没有在git 版本控制中的文件,是不能被git stash 存起来的。

那要怎么办呢,这个文件我也想存起来,很明显,先执行下git add 加到git版本控制中,然后再git stash就可以了,如下:

代码改完了才发现分支错了,怎么办?

最后一步可以看出来,这个新增文件已经被stash了。

这个时候再执行下git status ,被存起来的在当前目录就看不到了,如下:

代码改完了才发现分支错了,怎么办?

这个时候,想切分支就再也不会报错有改动未提交了。

如果要应用这些stash,直接使用git stash apply或者git stash pop就可以再次导出来了。

总结下:git add 只是把文件加到git 版本控制里,并不等于就被stash起来了,git add和git stash 没有必然的关系,但是执行git stash 能正确存储的前提是文件必须在git 版本控制中才行。

缺点:常规 git stash 的一个限制是它会一下暂存所有的文件,如果是暂存部分文件,可以在idea commit中右键部分文件使用shelve changes操作;

 

转载:https://www.cnblogs.com/zndxall/archive/2018/09/04/9586088.html

 

 

 

TRANSLATE with x English
Arabic Hebrew Polish
Bulgarian Hindi Portuguese
Catalan Hmong Daw Romanian
Chinese Simplified Hungarian Russian
Chinese Traditional Indonesian Slovak
Czech Italian Slovenian
Danish Japanese Spanish
Dutch Klingon Swedish
English Korean Thai
Estonian Latvian Turkish
Finnish Lithuanian Ukrainian
French Malay Urdu
German Maltese Vietnamese
Greek Norwegian Welsh
Haitian Creole Persian  
代码改完了才发现分支错了,怎么办? 代码改完了才发现分支错了,怎么办? 代码改完了才发现分支错了,怎么办? 代码改完了才发现分支错了,怎么办?   TRANSLATE with 代码改完了才发现分支错了,怎么办? COPY THE URL BELOW 代码改完了才发现分支错了,怎么办? 代码改完了才发现分支错了,怎么办? Back EMBED THE SNIPPET BELOW IN YOUR SITE 代码改完了才发现分支错了,怎么办? Enable collaborative features and customize widget: Bing Webmaster Portal Back
上一篇:git stash与恢复


下一篇:s5-1 CPU调度