美文网首页前端面试饥人谷技术博客让前端飞
如何享受一个美好的git开发体验

如何享受一个美好的git开发体验

作者: pengji | 来源:发表于2021-08-15 11:27 被阅读0次

    摘取之前写的新人文档留个纪念。

    前置学习:

    熟练使用 oh-my-zsh下 git 简写, 开始的时候会有些别扭,但是熟练起来之后会让你的操作异常帅气: git 简写 枚举

    # 常用简写速查
    alias ga='git add'
    alias gb='git branch'
    alias gba='git branch -a'
    alias gbd='git branch -d'
    alias gcam='git commit -a -m'
    alias gcb='git checkout -b'
    alias gco='git checkout'
    alias gcp='git cherry-pick'
    alias gd='git diff'
    alias gfo='git fetch origin'
    alias ggpush='git push origin $(git_current_branch)'
    alias ggsup='git branch --set-upstream-to=origin/$(git_current_branch)'
    alias glgp='git log --stat -p'
    alias gm='git merge'
    alias gp='git push'
    alias gst='git status'
    alias gsta='git stash save'
    alias gstp='git stash pop'
    
    • 双管齐下
      命令行。培育一个用着快捷、顺手的命令行环境; 图形工具 (source tree 等);
    • 学会使用vim: 花半个小时来学习一下vim的基本操作,会对之后的开发很有益处;

    起手式:美好的开始从master分支开始

    项目分支一般区分 master(online环境)、**其他环境, 除master 外的其他环境都有存在异常代码的风险,所以【规定】从master checkout 一条分支作为feature brach,从而减少异常代码对你本次开发的影响;

    如何写一个规范的commit cz

    1. commit 本质上只要描述清楚你本次提交即可,建议使用英文描述;

    2. 事上本没有路,走的人多了,也就有了路。 见识使用 git-cz (commitizen & cz-conventional-changelog )来定向改善你的commit内容;


      如此青春俏皮的commit跃然纸上,谁不爱呢?

    分支管理 rebase & merge

    1. 和conflict 做朋友
      新手朋友对于分支管理合并时总会感到有点恐慌,总怕在合并代码一不小心覆盖了别人的代码,从而造成奇异的bug。学会阅读和处理冲突,本质上冲突反映了两个分支的差异性,如果分支差异性过大,是不是嗅到一丝bad smell呢?
      学会用可视化的方式来解决冲突,明确的对比两个版本之间的差异,从而减少出错的概率;

    2. 学会取舍 - git diff
      区分rebase & merge时,比较的基准代码版本,从而理解当前分支合传入分支的区别;

    rebase 执行流程 merge 执行流程
    1. 学会使用 git cherry-pick
      当两个分支差异过大时,使用cherry-pick 无外乎也是一种不错的方式,这种”捡🍒“的合代码方式,磨平了两个差异性巨大的分支合并时带来的问题,增量的合并使合并操作十分丝滑,但是需要注意的是gcp需要按照顺序进行,否则无尽的冲突就会向你袭来;

    2. 做好一个”渣男“
      如果你有一些修改暂时不准备提交,并且也不准备放弃。那么你可以临时把这些文件通过"stash"暂存起来,在执行完手头的操作之后,再从”备胎“堆栈中找到你刚才暂存的代码,重新进行编辑;

    如何提一个 MR or PR

    1. gitlab 之 MR, github 之 PR
    2. release tag *
    3. ...

    死亡操作:

    1. 从异常分支(例如:beta分支) checkout出来并开始开发,一个错误的开始很难走到每秒的结局。


      死亡分支操作
    2. -f / --force (慎用)
    3. 不提交代码直接移除 / 回滚;
    4. rebase & merge 混用导致git tree 混乱;
    5. ...

    ANTI-死亡操作

    不要害怕使用git,你的任何操作都会被记录下来(前提是你要记得add)。
    
    1. reflog
    2. checkout . / -- file
    3. reset --hard / --soft
    4. revert
    5. blame
    6. ...

    CI & CD 解放你的双手 🙌

    存储原理 (短时间之内都不会很重要的内容)

    相关文章

      网友评论

        本文标题:如何享受一个美好的git开发体验

        本文链接:https://www.haomeiwen.com/subject/qqcubltx.html