Git 进阶之路(1)-常用命令

1. git log

git log 命令用于查看当前代码仓库的提交历史,根据参数的不同可以准确获得需要的信息,可通过命令 git log --help 查看文档,常用命令如下

命令功能
git log -p查看所有提交的具体内容,后可添加 -n 指定最近几次提交
git log --since=2018-02-09查看指定时间点之后的提交,也可使用 --before 查看指点时间之前的提交
git log --author=admin查看指定作者的提交,正则匹配
git log --online把提交信息压缩到一行显示
git log --grep “some”过滤 commit message 带有指定字符串的提交,完全匹配规则

2. git show

使用 git log 查看到提交历史之后,通常我们就能得到一个 CommitId,如下

commit dbc35460b22f76ed119a8ea153f3ad435dcc68d6 (HEAD -> master, origin/master)
Author: nathon <xxxxx@qq.com>
Date:   Sat Sep 28 13:07:53 2019 +0800

    Add red-black tree

根据commit dbc35460b22f76ed119a8ea153f3ad435dcc68d6 拿到 CommitId 之后,就可以使用
git show dbc35460b22f76ed119a8ea153f3ad435dcc68d6命令去查看这笔提交改动的内容

3. git blame

该命令可用于追查某个文件中每一行内容的修改者,如命令含义所示,其通常用于代码出现问题时的追责,使用示例如下

以下命令含义为 查看 Count/AllSort.java 文件 第 100-102 行的改动责任人
git blame Count/AllSort.java -L 100,102

根据打印内容可知道是 eb30439b 这笔提交改动了这部分内容,作者是 nathon
eb30439b (nathon 2019-09-28 12:31:48 +0800 100)                         a[j+1] = get;
eb30439b (nathon 2019-09-28 12:31:48 +0800 101)                 }
eb30439b (nathon 2019-09-28 12:31:48 +0800 102)         }

4. git stash

我们知道 git 有两个缓冲区的概念,一个是 工作区,一个是暂存区。正常的工作流程是所有改动最初都缓存在工作区中,当使用git add命令后,改动的内容就进入了暂存区等待git commit提交。但是当我们正在 分支 P 上改动代码,因为一些其他的事情不得不切换到 分支Q 来修复一些紧急问题,直接将 分支P 上的代码 commit 再切换分支肯定不是一个好的选择,但是不处理这些代码又无法切换分支,这时候就可以使用 git stash 命令

命令功能
git stash将工作区中的改动(红色文件)缓存起来,以便顺利执行分支切换、代码同步等操作
git stash list显示当前缓存代码列表
git stash apply默认将列表第一笔暂存代码恢复,也可指定某一笔暂存代码恢复,如 stash@{1}
git stash pop默认将列表第一笔暂存代码恢复,但是会将其出栈,列表中不再有这笔暂存记录
git stash show -p stash@{N}查看某一笔缓存代码的 diff

5. git reset

当代码改动已经通过git add 添加到暂存区中,而我们又因为其他的一些原因不想将其提交,则可以使用 git reset 命令来将改动重置回到工作区,可使用 git status查看代码状态

命令功能
git reset HEAD < file >将指定暂存区文件重置到工作区,不指定则将暂存区所有文件重置
git reset HEAD~n回退最新的 n 个提交,将其造成的改动全部重置回工作区(红色)
git reset < commitId >回退到指定的提交,在该提交之后的提交都会被重置回工作区

6. git remote

该命令主要用于操作当前 git 仓库的远程仓库的增删管理,通常使用如下

命令功能
git remote -v查看当前仓库的远程代码库
git remote add < name > < URL >添加指定 URL 的远程仓库,并为其命名 name
git remote remove < name >删除远程仓库
git remote rename < old > < new >重命名远程仓库
git remote -v show origin显示远程仓库 origin 的相关信息

7. git reflog

对于所有涉及到代码改动的操作,git 都会记录下来形成操作历史列表,该列表可以使用 git reflog 来查看。通过该命令,可以清晰地观察到本地代码的变更历史,配合命令git checkout错误操作的回滚提供了可能

命令:git reflog

打印:
dbc3546 (HEAD -> master, origin/master) HEAD@{0}: commit: Add red-black tree
eb30439 HEAD@{1}: cherry-pick: Update some file
6508e90 HEAD@{2}: checkout: moving from 113c4a96cff05ec58b8f7050070200bd11e1379c to master
113c4a9 HEAD@{3}: cherry-pick: Update some file

8. git cherry-pick

该命令通常用于代码的移植,系统升级时使用较多

命令功能
git cherry-pick < commitId >将一笔提交移植到当前分支的 HEAD 位置
git cherry-pick -x < commitId >将一笔提交作为 主提交 移植,用于将几笔提交压缩的情况
git cherry-pick -n < commitId >将一笔提交作为 从提交 移植,只移植其改动,将其作为主提交的改动

9. git checkout

该命令用于检出已经提交的代码,通常有如下几种用途

命令功能
git checkout .检出当前目录已经提交的代码,通常用于清除已经修改但是没有提交的改动(红色)
git checkout 6508e90将 HEAD 指到 6508e90 提交,该提交之后的提交不会丢失
git checkout < branch >检出指定的分支
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值