git 常用命令

一, git 常用命令

  1. 按时间来打印 git 的 log 日志,适用于一个分支
    git log master..anchor_moments --author=liuzhu --pretty=format:"%an, %ar : %s" --after="2019-06-15" --no-merges > 3.1.18.txt
  2. 查看 updateAppStoreRate 中比 master 中多提交了哪些内容 
     git log master..updateAppStoreRate > 3.1.18.txt 
     //(PS: updateAppStoreRate 分支是从 master 分支拉取的)
    git log master..updateAppStoreRate --pretty="%cr - %s" --author=liuzhu > 3.1.18.txt
  3.  查看两个标签(Tag)之间的提交

     git log v4.0.49.4900...v4.1.0.4913 > 4.1.0.txt
  4. 回顾自己在项目中遇到的问题,只查看我自己的提交
     git log --pretty="%cr - %s" --author=liuzhu --since="2017-08-30">3.2.1.txt
    git log --pretty="%cr - %s"  --since="2020-06-12">2.7.5.txt
    // 22 hours ago - 更改版本号3.2.1.4922
  5. 查看当前分支的提交内容,并用一行来简洁显示
    git log --pretty=oneline
    // 93b5cfe374a53e4893e4ef7efe4a5b9f3db3fa07 重新编译sdk
    // 8746811fba949c368937673dc6480ba569b7ffbf 更改版本号3.2.1.4922
  6. 如果提交了错误的内容, 可以使用 sourcetree 的 "reset 分支名 to this commit" 命令回滚代码, 若不想让同事看到这次提交的内容, 可以使用如下方法:
    1. git log : 查看要回滚到的某次提交的 md5值.
    localhost:pandalive-iOS liuzhu$ git log
    commit e11ea671f8d1be23e19af25861bac6ea32f9e25e (HEAD -> RainbowGift)
    Author: 刘著 <liuzhu@panda.tv>....
    
    2. git reset + md5值 : 回滚到有正确的提交的 md5值 
    localhost:pandalive-iOS liuzhu$ git reset 5185f23c1ac37fbe390ccd75307f4a7ac7c9fba7
    Unstaged changes after reset:....
    
    3. git checkout * : 丢弃掉刚刚回滚的提交
    localhost:pandalive-iOS liuzhu$ git checkout *
    
    4. git log : 查看结果, 果真没有这个提交了
    注意:
    1. "git reset --hard +md5" 命令可以让当前分支强制切到某一个提交, 看不到已经删除的所有提交记录, 类似于.
    2. "git reset +md5" 命令等价于"git reset --mix +md5", 可以观察自己在某个提交后做的所有更改
    3. "checkout *" 命令相当于重置没有缓存的所有内容
  7. 也可以用如下方法:

 

1. 在没有问题的提交处, 新建分支 A.
2. 删除有问题的分支 B
3. 拉取服务器对应的分支 B.
4. 将从服务器拉取的分支 B 合并分支 A.

 

  1. 通过名称模糊查找某次提交,并查看其内容
    1 git log --grep=接口
    2 git show 50e632a971f997cd16bec10d82783e9c96172576

     

  2. 查看当前分支的提交内容和时间,可以用如下命令
    1 git log --pretty=format:"%h - %an, %ar : %s"
    2 // 93b5cfe37 - wangyuheng, 17 hours ago : 重新编译sdk
    3 // 8746811fb - liuzhu, 18 hours ago : 更改版本号3.2.1.4922
     1 // 参数意义
     2 选项     说明
     3 %H    提交对象(commit)的完整哈希字串
     4 %h    提交对象的简短哈希字串
     5 %T    树对象(tree)的完整哈希字串
     6 %t    树对象的简短哈希字串
     7 %P    父对象(parent)的完整哈希字串
     8 %p    父对象的简短哈希字串
     9 %an    作者(author)的名字
    10 %ae    作者的电子邮件地址
    11 %ad    作者修订日期(可以用 -date= 选项定制格式)
    12 %ar    作者修订日期,按多久以前的方式显示
    13 %cn    提交者(committer)的名字
    14 %ce    提交者的电子邮件地址
    15 %cd    提交日期
    16 %cr    提交日期,按多久以前的方式显示
    17 %s    提交说明

二,经验总结

  1.  可以通过在本地建立分支,来添加自己的注释.上传公司的代码时,再切到其他分支,避免复制太多的文件,开销太大.(毕竟 push 代码时,是按分支 push 的,就不怕本地分支传到公司服务器.)
  2. 如果需要强制切换到某个分支时,当前分支有 commit,而且不打算提交到服务器,最好的做法是在当前 commit 创建一个新的分支再切到其他分支,不然的话,在当前分支的 commit 就不会保存.

posted on 2016-05-27 20:14  活最好的自己  阅读(305)  评论(0编辑  收藏  举报

导航