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

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/weixin_45505313/article/details/101616042

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 默认将列表第一笔暂存代码恢复,但是会将其出栈,列表中不再有这笔暂存记录

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 > 检出指定的分支

猜你喜欢

转载自blog.csdn.net/weixin_45505313/article/details/101616042
今日推荐