如今很多项目都采取merge request方式来进行codereview,所以掌握merge request很有必要,步骤如下:
0 checkout到主分支(仅一次)
git checkout master
git pull
0.5 fork本地分支,继承自主分支(仅一次)
git checkout -b new
1 子或者主分支下修改代码
为方便更新最新的主分支代码,推荐主分支下修改代码
git checkout master
git pull
//修复bug
git pull
2 将子分支push到远程
注意:每次push之前都要更新master分支,推荐经常更新master分支,避免合并冲突
git checkout master
git pull
git checkout wty
git merge master
git status
git add files
git commit -m "xxx: fix log"
git push origin new
注意:永远只push子分支
3 new merge request
登录gitlab,进入x项目下,点击Merge Requests选项,new merge request,然后选择你之前推到远端的new分支和你要合并到哪个分支(比如master)。点击continue。
4 重复1-4
其他
删除本地分支
git branch -d new
删除远程分支
git push origin --delete new
无损恢复add过的文件(unstage)
git reset HEAD file
放弃修改但未add过的文件
git checkout file
完全放弃最近commit过但未push的提交
git reset --hard commit号
pull时有冲突,提示要暂存
git stash
git stash list //查看暂存
pull完需要取消暂存
git stash pop
强制覆盖远程分支
git reset --hard commitid
git push origin branch --force
查看指定作者的简略log信息
git log --author=xxx
在git log信息里搜索关键词
git log --grep=keyword
某次提交详细改动log
git log -p commit号
当前代码和某commit代码之间的差异
git diff commit号
当前代码和当前最新commit代码打patch输出文件
打patch(应用diff/patch)
git diff > xxx.diff
git apply xxx.diff
git让单个文件回退到指定的版本
git log filename
git reset commit号 filename
git commit -m "revert old file because xxx commmit have a bug"
git checkout filename
git push origin branchname