📜  git stash pop 解决冲突 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 14:41:27.879000             🧑  作者: Mango

Git Stash Pop 解决冲突 - Shell/Bash

有时候,在开发过程中我们需要暂时切换到其它分支或者应急情况下需要停顿当前开发,但是这时候又不想将已经修改的代码提交到版本库,这时候就需要使用Git中的"stash"功能。

1. 什么是 Git Stash?

Git Stash 可以在当前工作路径中保存当前的修改,而不是提交到本地store或远端版本库。该函数经常用来暂时移除更改并在此基础上进行其他工作。stash拥有多种选项,包括 push/pop/apply/list/drop等命令。

2. 如何使用Git Stash?

通过命令git stash可以将当前的更改和工作目录保存下来,我们也可以给Stash一个描述。保存后,工作目录会还原到当前状态,可以切换到其他分支进行操作。

当我们想要回到上一个更改时,可以通过命令 git stash pop 来取回之前保存的stash,发现冲突后我们需要手动合并冲突并提取存储的更改。

下面是一些相关的命令:

将更改添加到Stash
#保存现有工作目录状态
$ git stash save "描述该stash的信息"

#不加-m,会根据最近的提交生成缓存信息
$ git stash
列出所有的stash(可选- 显示描述信息)
$ git stash list
应用stash 并将其从stash列表中移除
$ git stash pop stash@{num}
应用stash,但是不将其从stash列表中移除
$ git stash apply stash@{num}
删除 stash
#移除指定的stash,以stash编号命名
$ git stash drop stash@{num}

#移除最近的stash
$ git stash drop

上面的命令可以帮助我们完成大部分利用stash的工作。

3. 如何使用git stash pop 解决冲突?

当你应用stash时,你可能会遇到冲突,这就是stash的一个缺点。为了解决冲突,需要按照以下步骤:

  1. 应用stash
$ git stash pop
  1. 发现冲突,并将其手动解决
Auto-merging file_name
CONFLICT (content): Merge conflict in file_name

在代码中删除冲突,修改文件,以及将文件标记为解决

$ mark-file-as-resolved
  1. 提交更改
$ git add/update file_name
$ git commit -m "Conflicts Resolved"

4.删除stash

$ git stash drop

现在,您已经成功完成了解决冲突了。

结论

Git Stash是一项非常有用的功能,特别是在当前的工作不适合在版本库中提交的情况下。它可以帮助我们在不更改当前进度的情况下执行其他操作。

git stash pop 则是解决stash冲突的必备命令。通过上述介绍,相信你们已经可以顺利使用stash来解决你们的冲突问题了。

如果对Git stash 操作不熟悉的同学,建议多进行实践操作。

参考