Git 新学命令和提交说明

178 阅读1分钟

一、图形化查看commit远端操作

$ git log --graph --pretty=oneline --abbrev-commit

1、commit message

commit message 其实类似于代码中的注释,方便后面的同学查找、学习、Review 及寻求出现过的解决方案之用。

简洁、清晰的提交说明很是重要

比如您加了一个写草稿的功能,然后您又改了一个闪屏的 bug。在这种情况下,把两个功能分开提交会是一个不错的主意。

绝(请)不要把不相关的功能变更提到一个 commit 里。

杂糅的提交,一个最直观的问题是,我们不知道该如何写 commit message(因为做了很多操作,不容易描述清楚),有人犯懒的话可能直接只描述了其中的一个变更。这样其实就丢失了解决方案的可复用性。试想,假如半年之后,又出现了闪屏的 bug,开发同学可以从 git history 看到之前已经有人解决过,就可以从之前的解决方案中得到一些灵感。

提交时,请加上以下的几种类型:

  1. [feat] 添加了新功能
  2. [refactor] 重构
  3. [test] 测试
  4. [fix] 修复了某个bug
  5. [perf]       性能方面的优化
  6. [chore]      构建过程、打包、或辅助工具的变动
  7. [style]      修改了样式
  8. [text]       修改了文案
  9. [typo]       手误
  10. [docs]      文档
  11. [localize]  多语言等

二、要查看远程库的信息

$ git remote -v

当你从远程仓库克隆时,实际上Git自动把本地的master分支和远程的master分支对应起来了,并且,远程仓库的默认名称是origin

上面显示了可以抓取和推送的origin的地址。如果没有推送权限,就看不到push的地址。

三、git pull 和 git fetch

先用一张图来理一下git fetchgit pull的概念:

可以简单的概括为:

git fetch是将远程主机的最新内容拉到本地,用户在检查了以后决定是否合并到工作本机分支中。

git pull 则是将远程主机的最新内容拉下来后直接合并,

即:git pull = git fetch + git merge,这样可能会产生冲突,需要手动解决。

下面我们来详细了解一下git fetchgit pull 的用法。

四、git cherry-pick

阮一峰git cherry-pick

$ git cherry-pick <commitHash>

五、git stash

git stash和git stash pop

git stash 可用来暂存当前正在进行的工作, 比如想pull 最新代码, 又不想加新commit;或者另外一种情况,为了fix 一个紧急的bug, 先stash, 使返回到自己上一个commit, 改完bug之后再stash pop, 继续原来的工作。

基础命令:

$ git stash 

    // do some work

$ git stash pop

工作中再遇到新的命令行;我会继续总结更新!👨🏻‍💻