【git之窗】(八)git高级配置(珍藏版)以log优化为主

晚上帮同事解决一个merge问题的时候,发现了我去年在上一家公司时候写的一篇非常不错的关于git的文章,分享出来,有助于更加高效地使用git。

 

      (1)配置lg2

       git默认的日志查看命令是“git log”,界面显示如下:

     《【git之窗】(八)git高级配置(珍藏版)以log优化为主》

        然而,我们就酱紫默默地忍受了,其实每次提交之后,各个节点之间的关系(合并、新分支)等都不能通过log命令,清晰地看到。当时和组长学了一招,(据说我组长是和一名清华大学毕业的搞Linux内核的大牛学到的)。

        输入:notepad ~/.gitconfig 

        此时会打开一个文档,输入:

 

[plain] 
view plain
 copy  

  1. [alias]  
  2.     lg1 = log –graph –abbrev-commit –decorate –date=relative –format=format:’%C(bold blue)%h%C(reset) – %C(bold green)(%ar)%C(reset) %C(white)%s%C(reset) %C(dim white)- %an%C(reset)%C(bold yellow)%d%C(reset)’ –all  
  3.     lg2 = log –graph –abbrev-commit –decorate –format=format:’%C(bold blue)%h%C(reset) – %C(bold cyan)%aD%C(reset) %C(bold green)(%ar)%C(reset)%C(bold yellow)%d%C(reset)%n”          %C(white)%s%C(reset) %C(dim white)- %an%C(reset)’ -10 –all  
  4.     lg = !”git lg1″   

        点击保存之后,下次查看log的时候,通过“git lg2”命令,如图:

   《【git之窗】(八)git高级配置(珍藏版)以log优化为主》

       看到左侧那个形似“水管”的优美线条了吗?各个节点之间的关系,是不是一目了然,当前dev分支所在的节点当前master分支所在的节点,是不是一目了然?这对于我们解决merge等问题,简直高效了不知道多少倍!!!

 

 

       Addition:(送一波福利)

      (1)配置拉取信息,相当于git pull –rebase origin master

       命令行输入:notepad ~/.gitconfig 

       在弹出来的文档里输入:

 

[plain] 
view plain
 copy  

  1. [branch “master”]  
  2.   remote = origin  
  3.   merge = refs/heads/master  
  4.   rebase = true  

       以后输入:git pull origin master,就相当于”git pull –rebase origin master”,同时这样子从远程分支拉下来,同时执行了合并操作,区别于git fetch,对于git pull,则是将所有信息pull下来。

      (2)提交代码时候,多个类时候,输入:git commit -a -m 可以备注信息。

      (3)git reset — hard (如果有失误的操作,可以恢复到最近一次的代码版本)

       如果想要回退到特定的版本:

 

[plain] 
view plain
 copy  

  1. git lg2  显示出版本的hard版本  
  2. git reset — hard 版本号    (回滚到特定的版本)  — 不要在master主分支上做  

      (4)git rm  (手动删除一个文件之后,运行git rm,则删除了该文件) 。如果删除之前修改过并且已经放到暂存 区域的话,则必须要用强制删除选项 -f

      (5)git diff  (暂存和未提交的区别)
               git diff — cached  (查看不同,代码修改过的地方)

       如上,是我在上一家公司和组长学到的两点高级配置以及一些自己当时用过的一些解决git问题时常用的命令,分享给大家,望能帮助到别人。

     

点赞