📅  最后修改于: 2023-12-03 14:41:27.879000             🧑  作者: Mango
有时候,在开发过程中我们需要暂时切换到其它分支或者应急情况下需要停顿当前开发,但是这时候又不想将已经修改的代码提交到版本库,这时候就需要使用Git中的"stash"功能。
Git Stash 可以在当前工作路径中保存当前的修改,而不是提交到本地store或远端版本库。该函数经常用来暂时移除更改并在此基础上进行其他工作。stash拥有多种选项,包括 push/pop/apply/list/drop等命令。
通过命令git stash
可以将当前的更改和工作目录保存下来,我们也可以给Stash一个描述。保存后,工作目录会还原到当前状态,可以切换到其他分支进行操作。
当我们想要回到上一个更改时,可以通过命令 git stash pop
来取回之前保存的stash,发现冲突后我们需要手动合并冲突并提取存储的更改。
下面是一些相关的命令:
#保存现有工作目录状态
$ git stash save "描述该stash的信息"
#不加-m,会根据最近的提交生成缓存信息
$ git stash
$ git stash list
$ git stash pop stash@{num}
$ git stash apply stash@{num}
#移除指定的stash,以stash编号命名
$ git stash drop stash@{num}
#移除最近的stash
$ git stash drop
上面的命令可以帮助我们完成大部分利用stash的工作。
git stash pop
解决冲突?当你应用stash时,你可能会遇到冲突,这就是stash的一个缺点。为了解决冲突,需要按照以下步骤:
$ git stash pop
Auto-merging file_name
CONFLICT (content): Merge conflict in file_name
在代码中删除冲突,修改文件,以及将文件标记为解决
$ mark-file-as-resolved
$ git add/update file_name
$ git commit -m "Conflicts Resolved"
4.删除stash
$ git stash drop
现在,您已经成功完成了解决冲突了。
Git Stash是一项非常有用的功能,特别是在当前的工作不适合在版本库中提交的情况下。它可以帮助我们在不更改当前进度的情况下执行其他操作。
而git stash pop
则是解决stash冲突的必备命令。通过上述介绍,相信你们已经可以顺利使用stash来解决你们的冲突问题了。
如果对Git stash 操作不熟悉的同学,建议多进行实践操作。