这是我参与8月更文挑战的第5天,活动详情查看:8月更文挑战
经常有人问多人开发git提交代码问题,在这简单做下总结。
一、工作中Git提交代码远程仓库基本流程:
基本流程:
- push自己代码到远程仓库前
- 先stash缓存本地代码(以防别人也有修改有冲突)
- 然后pull拉取远程代码
- 拉取完后stash pop抛出本地代码
- 有冲突时对照提示解决冲突文件,没有则直接add暂存区
- commit 提交说明
- 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
二、当提交时出现问题的解决方法命令
基本流程:
- 首先查看log日志
- reset --soft回退到没有冲突的版本(软回退)
- 然后stash缓存本代码
- pull远程代码
- stash pop抛出本地备份代码
- 有冲突则解决冲突,然后add
- commit
- 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