小伙伴在使用git的时候会不会遇到下面这种情况
假设你正在develop分支开发项目,代码写了一半,暂时还不想提交。但是这时候突然来个紧急bug。你要切换到test分支去修改bug。
方法一:
今天,注要说的是使用git stash解决这个问题
git stash:个人理解,就是将当前工作区的更改的内容备份起来,存到git 栈当中
操作:
1、将当前工作区的内容备份,注意备份的是还没 git add .
的内容
git stash //备份当前工作区所有内容,自动生成注释
git stash save '注释内容' //备份当前工作区所有内容,并增加注释
备份完之后,你就可以切换到其他分支修改bug了。
当你修改完其他完分支后。回到本分支看如下操作
2、查看自己备份的序列号或条目,看你怎么理解
git stash list
没写注释的长这样:
写注释的是这样的:
细心的小伙伴们注意到stash@{0}
这个了没。最新备份的条目总是0
。
我们继续往下看
3、根据stash@{num}
恢复到工作区
git stash pop //恢复最近一次stash的文件内容(stash@{0}),并将该记录在 git stash list 中删除,删除记录
git stash apply //恢复最近一次stash文件内容(stash@{0}),list 列表中不删除记录
git stash pop stash@{num}//恢复指定序列条目的内容,并删除该条目的记录
git stash apply stash@{num}//恢复指定序列条目的内容,并删除该条目的记录
4、假设我用了apply,但是后来我想把我之前备份的文件删了怎么办
git stash drop //删除最近一次备份,也就是stash@{0}.
git stash drop stash@{num} //删除指定序列备份
git stash clear //删除所有备份文件
在develop开发,去test修改bug
方法二:
创建临时分支篇
git switch -c 'devtemp01' //基于develop当前修改的内容创建临时值devtemp01
git commit -a -m '临时解决'//提交commit
git checkout test//切换test修改并提交
......
git checkout devtemp01//改完bug回到devtemp01
git reset HEAD^//将上一次commit回退到工作区,继续进行修改,修改完成后合并到develop分支
git branch -d devtemp01 //完事删除本地创建的临时分支
方法三:
简单篇
git commit -a -m '提交develop更改' //提交develop更改
git checkout test //切换到test,进行修改bug,提交并推送
......
git checkout develop
git reset HEAD^ //拉回工作区,继续进行修改。
注释:
git switch 和 git checkout 都能切换分支,基本没什么区别。
git commit -a -m '内容' 实际就是git add . 和 git commit -m '内容'结合体
不知道小伙伴看了上面几种类型,有什么想法呢,欢迎留言提问!