目录
重点重点:合并分支时,发生冲突时,一定要打开冲突文件,冲突的地方一行一行的看来解决冲突,不要直接选择一个分支的代码。
在工作过程中,发现有的同事在合并代码时好像比较随意,有的时候打开文件,居然还有没解决的冲突。或者代码丢失了,我猜有可能就是合并产生冲突的时候没有好好解决。
1.git提交代码的流程
首先进入当前项目的文件夹
查看当前分支:
git branch
查看当前状态:
git status
(你修改了什么文件,创建了什么文件)
查看某文件状态
git diff api/app/controllers/BankController.php
(你删除了什么,增加了什么)
将文件移出本地仓库
git checkout api/app/controllers/BankController.php
(这个会丢弃你的修改,你可以选择不add这个文件即可)
将文件添加至本地仓库
git add backend/app/daos
(你需要提交的文件)
确认提交至本地仓库(使用-m)
git commit -m "add operation log from tuhaixia"
当提交到review后,补充提交
git commit --amend
* 使用这步应该确保,你之前的提交没有push到远端
提交至review
a. gerrit push feature/operate-log feature/operate-log
(从本地分支提交到远程分支,目前本地分支和远程分支一样的)
(gerrit push #LOCAL_BRANHCH_NAME #REMOTE_BRANCH_NAME)
* 这一步只适用于需要gerrit提交的系统(我们有个系统,gerrit 后,别人过了代码,才会到远端仓库)
b. git push
2. 分支相关
1)普通命令
切换到新分支同时连接到远程分支:
git checkout -b feature/harvest --track origin/feature/harvest
删除分支:
git branch -D feature/harvest
2)bug分支-工作现场(stash)
当你正在开发的时候需要修复其他bug,这时你可以保存当前工作现场以便,修复完bug后回到之前开发的状态。
git 保存当前工作现场:
git stash
查看已保存的工作现场:
git stash list
回到并删除当前工作现场:
git stash pop stash@{0}
git stash clear :注意这是清空你所有的内容
git stash drop stash@{0} 这是删除队列中特定的stash
3)合并分支
- 首先得pull 一下代码
git pull
- 合并分支(将远端master分支合并到当前分支)
git merge origin/master --no-ff
* 工作中最好合并远端的分支,本地的分支,可能在工作中进行了修改,你却忘了。
* --no-ff
在这的作用是禁止快进式合并。(no fast-forward),合并时最好加上,避免意想不到的错误
* 合并时可能出现冲突,需要解决冲突后再提交
- 提交
git commit
- push到远端
git push