我了解的git

453 阅读2分钟

前言:

如果你对git flow,规范化操作很了解,烦请直接到文章底部看 '骚操作'

一、 gitlab 创建项目

如图操作 图一:

图二:

二、 创建 new issue

图3:

图4:

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

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

看到test分支从master上长出来了😁……

ok,现在定义一下:

test:   测试分支          // 所有开发的分支都合并到 test  上
master: 生产环境上分支    // 管理员才有权限去操作

1. submit issue;

2. 开发完第一个任务

3. 合并分支到 test 两种方式

  1. 去gitlab GUI上发 merge request,将 source branch ====merge===>>> target branch

图 5:

图 6:
图 7:
这种merge graph长这样
图 8:

  1. 直接通过命令去 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

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