git的工作流程 以及pull之后冲突的解决方案
2022-07-27
# git
作为一个个人开发者,Git的工作流程还是以简单实用为主。基本就是一个main分支和一个dev分支。平时在dev分支上开发,dev开发稳定了再merge到main分支上。然后继续到dev上开发。
如下图是标准的多人分支管理策略,有点复杂。我自己用的话就简单了,因为只有我一个人,不会有和其他人冲突的问题。
我一般是有几个电脑,在每次开始前,先pull origin将本地workspace 更新到与远端一致,就可以开始干活了。干完再commit 和 push origin 一下就行了。
但有时候pull origin的时候,会出现overwrite的错误。这一般是因为,本地文件在pull之前就被改动过。这时候需要使用
1 | git stash |
保存当前工作进度,会把暂存区和工作区的改动保存起来。执行完这个命令后,在运行git status
命令,就会发现当前是一个干净的工作区,没有任何改动。使用git stash save 'message...'
可以添加一些注释.
用了这个命令之后,你的工作区就会回到最近一次git pull之后的干净状态。这时你就可以再pull origin了
1 | git stash list |
显示保存进度的列表。也就意味着,git stash命令可以多次执行。
1 | git stash pop [–index] [stash_id] |
1 | git stash pop |
恢复最新的进度到工作区。git默认会把工作区和暂存区的改动都恢复到工作区。
1 | git stash pop --index |
恢复最新的进度到工作区和暂存区。(尝试将原来暂存区的改动还恢复到暂存区)
1 | git stash pop stash@{1} |
恢复指定的进度到工作区。stash_id是通过git stash list命令得到的
通过git stash pop命令恢复进度后,会删除当前进度。