使用场景为,当做一个项目时,你可能有多个任务,这样你就会有多个分支比如A,B。当你正在做B任务时,突然让你去修改A任务的一个问题,这时切分支会将你B分支上的修改带到A分支,如何才能在不commit的情况下,不将当前修改的文件带到新分支上?
1.切分支之前 先执行 git stash 将未提交的修改放到堆栈中。
2.切换到新分支,处理对应问题
3.切换回原来分支,执行git stash apply 将以前的修改从堆栈中拿出来继续工作。
以上方式仅适用于stash 一次的情况,如果stash多次 那么就会形成一个stash list 列表 但是 当运行git stash apply 时 取出最新的一次stash
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
stash的每个指令的作用
git stash 能够将所有修改但为提交的文件保存在堆栈中,用于后续需要的时候取出
git stash save "test1" 将本次stash内容 注释为 test1 方便下次取出时好找到
git stash list 查看当前stash过的记录
git stash pop 将当前stash中的内容弹出 因为栈是先进后出 所以可能后stash的会被先弹出来
git stash pop stash@{id} 选取其中的一次stash 弹出到当前分支 这个id是从git stash list 当中看
git stash apply 将最新的一次stash内容,拿出来 但是不会删除栈中的数据 ,也就是说可以在其他分支 继续拿出
git stash apply stash@{id} 选取一次stash记录 回复到当前分支 这个id是从git stash list中查看
git stash drop stash@{id} 从堆栈中删除某个指定的stash
git stash clear 清除堆栈中所有的内容