情况1: 当本地的代码已经commit
????????我遇到的是这个情况。方法肯定有很多。这里仅记录我处理成功的。首先我们应该把远端的代码分支拉取到本地的一个新的临时分支上。
git fetch origin remote_brach:local_tmp
然后可以通过下面命令查看与本地最新分支的差异。
git diff local_tmp
在自己想提交的分支上执行合并命令。
git merge local_tmp
如果有不能自动合并的冲突文件,则需要自己打开并修改。冲突文件的基本格式是<<<<<<<到=======是在当前分支合并之前的文件内容,=======到>>>>>>> 是在其它分支下修改的内容需要在这个两个版本中选择一个,然后把标记符号也要一起删除。
手动解决完冲突就可以push到远端分支了。
情况2: 本地修改还未执行commit
????????通常我们会遇到这样的场景,自己在实现一个功能但又没做完,这时候又需要修改bug,我们不想现在就提交自己的修改增加太多无用的日志记录,但不交以后又无法回到这个状态。这时可以使用git stash命令,将本地的工作区的内容保存并回到前一次commit后的状态。
git stash save -m "自己想留的标识信息"
查看现有stash。
git stash list
应用指定的stash到工作区,但不删除该stash。
git stash apply 对应stash的名字
删除则是将apply换成drop。
默认情况下,git stash会缓存下列文件:
????????添加到暂存区的修改 ????????Git跟踪的但并未添加到暂存区的修改 但不会缓存以下文件:
????????在工作目录中新的文件 ????????被忽略的文件
|