美文网首页
GitHub 进阶技巧

GitHub 进阶技巧

作者: TTTqiu | 来源:发表于2016-08-07 21:15 被阅读39次

alias 命令缩写

  • 设置缩写别名:
    **git config --global alias.co checkout **
    git config --global alias.ci commit
    git config --global alias.st status
    git config --global alias.br branch
    以后就可以用缩写代替了:
    git co
    git ci
    git st
    git br
  • 还可以设置组合缩写:
    git config --global alias.psm 'push origin master'
    git config --global alias.plm 'pull origin master'
  • 更好看的 log:
    git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative

    利用缩写:
    git config --global alias.lg "log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative"
    以后用 git lg 就行了。

stash

假设我们正在一个新的分支做新的功能,这个时候突然有一个紧急的 bug 需要修复,而且修复完之后需要立即发布。当然你说我先把刚写的一点代码进行提交不就行了么?这样理论上当然是 ok 的,但是这会产生垃圾 commit,原则上我们每次的 commit 都要有实际的意义,你的代码只是刚写了一半,还没有什么实际的意义是不建议就这样 commit 的,那么有没有一种比较好的办法,可以让我暂时切到别的分支,修复完 bug 再切回来,而且代码也能保留的呢?

  • 前提是代码没有进行 commit ,哪怕执行了 add 也没关系,先执行:
    git stash
    就是把当前分支所有没有 commit 的代码先暂存起来。
  • 查看暂存区记录:
    git stash list
  • 事情做完了,要还原代码:
    git stash apply
  • 最后最好需要把暂存区的这次 stash 记录删除:
    git stash drop
    后面可以跟 stash_id 参数来删除指定的某条记录,不跟参数就是删除最近的。
    或:
    git stash pop
    不但会帮你把代码还原,还自动帮你把这条 stash 记录删除。
  • 清空所有暂存区的记录:
    git stash clear

merge & rebase

  • 要合并分支,可以:
    git checkout master
    git merge featureA
    或:
    git checkout master
    git rebase featureA
  • 区别在于:
    rebasemerge 的区别你们可以理解成有两个书架,你需要把两个书架的书整理到一起去,第一种做法是 merge ,比较粗鲁暴力,就直接腾出一块地方把另一个书架的书全部放进去,虽然暴力,但是这种做法你可以知道哪些书是来自另一个书架的;第二种做法就是 rebase ,他会把两个书架的书先进行比较,按照购书的时间来给他重新排序,然后重新放置好,这样做的好处就是合并之后的书架看起来很有逻辑,但是你很难清晰的知道哪些书来自哪个书架。

  • 查看配置;
    git config -l
  • 比较两次提交之间的差异:
    git diff <$id1> <$id2>
  • 在两个分支之间比较:
    git diff <branch1>..<branch2>
  • 比较暂存区和版本库差异:
    git diff --staged

相关文章

网友评论

      本文标题:GitHub 进阶技巧

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