git 处理提交中的问题
- git的工作流程需要先在本地仓库进行提交,然后push到远程仓库,如果此时远程仓库与本地仓库不同步,发生了变化,push操作是不允许的。
- 这时候,需要先把远程的变化拉下来,然后在本地处理完毕后,再将本地改动一次性提交。
- 这里相当于是在将远程分支合并到本地分支的一个请求动作,合并完成后会多这么一条提交记录,然后正常push即可。但是这个动作其实不应该存在,可以用其他方法避开它。
- 如果在本地仓库已经完成了提交,可以先撤回,接着再将改动都暂存起来,然后先更新远程分支变化,之后再将本地暂存内容取出来,作为本次提交内容,接着进行推送即可。
很多情况下是不清楚远程有变化,有时候会导致莫名其妙有人在我提交本地仓库到推送命令执行之前进行了推送,导致本地仓库与远程仓库不一致,接着理所当然的进行了更新操作,也就发现了一条上述的日志,于是我要取消掉它,这里的操作目前都是在本地。
- 首先撤销到上个版本,即更新代码之前的状态,这里要用强撤销 --hard,删除更新到本地的远程变化,这样就回到了之前的样子。
- 再次进行撤销,这次需要软撤销,保留内容,删除提交和添加。
- 然后将内容暂存到本地暂存区,操作到这里就回到了自己改动之前的模样。
- 更新远程变化。
- 取出本地暂存的内容,进行添加和本地提交。
- 向远程推送即可。