git的工作流程 以及pull之后冲突的解决方案
2022-07-27 # git

作为一个个人开发者,Git的工作流程还是以简单实用为主。基本就是一个main分支和一个dev分支。平时在dev分支上开发,dev开发稳定了再merge到main分支上。然后继续到dev上开发。

如下图是标准的多人分支管理策略,有点复杂。我自己用的话就简单了,因为只有我一个人,不会有和其他人冲突的问题。

1

我一般是有几个电脑,在每次开始前,先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命令恢复进度后,会删除当前进度。