前言:
如果你对git flow,规范化操作很了解,烦请直接到文章底部看 '骚操作'
一、 gitlab 创建项目
如图操作
图一:

图二:

二、 创建 new issue
图3:

图4:

三、 然后在开发分支上操作,推到gitlab服务器上;

四、 然后按键盘上的G N 两个键,看到graph长这样

看到test分支从master上长出来了😁……
ok,现在定义一下:
test: 测试分支 // 所有开发的分支都合并到 test 上
master: 生产环境上分支 // 管理员才有权限去操作
1. submit issue;

2. 开发完第一个任务

3. 合并分支到 test 两种方式
- 去gitlab GUI上发 merge request,将 source branch ====merge===>>> target branch
图 5:



图 8:

- 直接通过命令去 merge


git log --graph 命令和GUI 对比


ok,这时候,我们开发完了,测试完成,发MR,将 test 合并到 master,不勾选删除当前分支


将多个commit点修改一下,比如合并成一个点
git rebase -i HEAD~<num> num代表要合并的commit点数



常见命令
1. git stash && git stash pop

2. git branch -D <branch-name> 删除本地分支
git branch -a 查看所有分支
git branch -r -d <remote branch-name> 删除 remote branch
git branch -m <new branch name> 对当前分支进行rename

3.git branch的参数

为什么要rebase ???
看到了上述,上述小伙伴看到了我每次操作都有rebase,为什么要rebase呢?强迫症啊啊啊啊啊!!!

图来自文章 rebase的操作;
来一点骚操作,配置一下alias
Mac系统安装了iterm2
如果安装了zsh主题,就修改 vim ~/.zshrc;
没安装,就vim ~/.bashrc;
废话不多,直接上配置,粘贴就能用;
# alias setting
alias g='git'
alias ga='git add -all'
alias gfp='git fetch -p'
alias gp='git pull'
alias gcn='git commit --amend --no-edit'
alias gb='git branch'
alias gba='git branch -a'
alias gcb='git checkout -b '$*''
ganp(){
git add . && git commit --amend --no-edit && git fetch -p && git rebase origin/'$*' && git push origin HEAD -f
}
alias ganp=ganp
gacp(){
git add --all && git commit -m "$*" && git fetch -p && git rebase origin/'$*' && git push origin HEAD -f;
}
alias gacp=gacp;
上面配置了两个函数ganp和gacp,这样每次提交代码,一行即可搞定
gacp 用于第一次提交,附带一个commit message
ganp 用于当前分支已经提交过commit message

你品,你细细品,是不是爽歪歪~