项目开发中git代码回滚和解决冲突总结

679 阅读2分钟

这是我参与8月更文挑战的第5天,活动详情查看:8月更文挑战

博主相关个人技术博客、微信公众号、视频号、设计作品集

经常有人问多人开发git提交代码问题,在这简单做下总结。

一、工作中Git提交代码远程仓库基本流程:

基本流程:

  1. push自己代码到远程仓库前
  2. 先stash缓存本地代码(以防别人也有修改有冲突)
  3. 然后pull拉取远程代码
  4. 拉取完后stash pop抛出本地代码 
  5. 有冲突时对照提示解决冲突文件,没有则直接add暂存区
  6. commit 提交说明
  7. push到远程仓库

具体操作命令介绍如下

1、查看远程分支

git branch -a

2、切换分支

git checkout xxx

3、备份当前工作区的内容

git stash

4、拉取代码

git pull

5、抛出备份的本地代码

git stash pop

6、提交远程仓库说明

git commit -m "xxxxx"

7、将工作区的代码存放到暂存区(有三种命令自行选择)

  • git add . (将当前工作区的所有文件存放到暂存区)
  • git add -u   (提交更新所有改变的文件,即提交所有变化的文件)
  • git add -A    (提交已被修改和已被删除文件,但是不包括新的文件)

8、将本地代码推到远程仓库(根据项目不同后缀有所不同)

git push origin HEAD:refs/for/dev

二、当提交时出现问题的解决方法命令

 基本流程:

  1. 首先查看log日志
  2. reset --soft回退到没有冲突的版本(软回退)
  3. 然后stash缓存本代码
  4. pull远程代码
  5. stash pop抛出本地备份代码
  6. 有冲突则解决冲突,然后add
  7. commit
  8. push

 具体解决操作命令介绍如下

1、查看日志

git log

2、回退版本(两种命令自行选择)

  • git reset --hard xxx (本地文件和commit信息都回退了  出现dev|MERGING)
  • git reset --soft xxx  (本地文件还在,当commit信息已经回退)

4、修改上一次提交,将两次提交合并为一次提交(即-m '日志')

  • git commit --amend
  • git commit --amend -m "xxxxxx"

5、抛弃合并过程并且尝试重建合并前的状态(合并后出现问题时使用)

git merge --abort

6、不加参数即默认比较工作区与暂存区

git diff