worktools-git 工具的使用总结(5)

1.查看历史记录git log

1)不加参数,显示的就是节点号,作者,日期,注释

commit b7b310d220628530d1feb9e8046ccb59039d59f2
Author: zhangshuli <[email protected]>
Date:   Sat Feb 28 14:25:11 2015 +0000

    cherry-pick

commit ac63f3e801e4022b34ba14ed9d1ae75b022ff067
Merge: 02906a1 618011f
Author: zhangshuli <[email protected]>
Date:   Sat Feb 28 14:18:04 2015 +0000

    Merge branch ‘third‘ into parent

commit 02906a15dc15be5fefd5e41dcd3977bb2f762cff
Author: zhangshuli <[email protected]>
Date:   Sat Feb 28 14:10:45 2015 +0000

    yahe

commit 618011fc23e6fe8108e830e2812a298ad217d0cb
Author: zhangshuli <[email protected]>
Date:   Sat Feb 28 14:08:45 2015 +0000

    commit ddd

2)如果想要查看版本代码差异,可以加参数p   git log -p

commit b7b310d220628530d1feb9e8046ccb59039d59f2
Author: zhangshuli <[email protected]>
Date:   Sat Feb 28 14:25:11 2015 +0000

    cherry-pick

diff --git a/aaa.txt b/aaa.txt
index 7b6d3c6..3de9291 100644
--- a/aaa.txt
+++ b/aaa.txt
@@ -1,3 +1,4 @@
 my second commit
 add son
+cherry-pick

commit ac63f3e801e4022b34ba14ed9d1ae75b022ff067
Merge: 02906a1 618011f
Author: zhangshuli <[email protected]>
Date:   Sat Feb 28 14:18:04 2015 +0000

    Merge branch ‘third‘ into parent

commit 02906a15dc15be5fefd5e41dcd3977bb2f762cff
Author: zhangshuli <[email protected]>
Date:   Sat Feb 28 14:10:45 2015 +0000

    yahe

diff --git a/ccc.txt b/ccc.txt
new file mode 100644
index 0000000..b2a7546
--- /dev/null
+++ b/ccc.txt
@@ -0,0 +1 @@
+ccc
diff --git a/ddd.txt b/ddd.txt
new file mode 100644
index 0000000..1d60b70
--- /dev/null
+++ b/ddd.txt
@@ -0,0 +1 @@
+ddd

3)从开始到指定节点的历史记录 git log number

[email protected]7817:~/myGit$ git log -p 618011fc23e6fe8108e830e2812a298ad217d0cb
commit 618011fc23e6fe8108e830e2812a298ad217d0cb
Author: zhangshuli <[email protected]>
Date:   Sat Feb 28 14:08:45 2015 +0000

    commit ddd

diff --git a/ddd.txt b/ddd.txt
new file mode 100644
index 0000000..1d60b70
--- /dev/null
+++ b/ddd.txt
@@ -0,0 +1 @@
+ddd

commit 6a74382c9c481515cd70136ce3212ace7aa1c50e
Author: zhangshuli <[email protected]>
Date:   Sat Feb 28 14:08:24 2015 +0000

    commit ccc.txt

diff --git a/ccc.txt b/ccc.txt
new file mode 100644
index 0000000..b2a7546
--- /dev/null
+++ b/ccc.txt
@@ -0,0 +1 @@
+ccc

4)查找制定范围历史记录

git log number1..number2(两个节点的历史记录,不包括前节点,包括后节点)

[email protected]7817:~/myGit$ git log -2
commit b7b310d220628530d1feb9e8046ccb59039d59f2
Author: zhangshuli <[email protected]>
Date:   Sat Feb 28 14:25:11 2015 +0000

    cherry-pick

commit ac63f3e801e4022b34ba14ed9d1ae75b022ff067
Merge: 02906a1 618011f
Author: zhangshuli <[email protected]>
Date:   Sat Feb 28 14:18:04 2015 +0000

    Merge branch ‘third‘ into parent
[email protected]-MS-7817:~/myGit$ git log ac63f3e801e4022b34ba14ed9d1ae75b022ff067..
commit b7b310d220628530d1feb9e8046ccb59039d59f2
Author: zhangshuli <[email protected]>
Date:   Sat Feb 28 14:25:11 2015 +0000

    cherry-pick
[email protected]-MS-7817:~/myGit$ 

git log --since="5 hours"(支持的参数有 "2 minute" "2008-10-01" ,--before的用法也是如此)

[email protected]7817:~/myGit$ git log --since="2 minute"
[email protected]-MS-7817:~/myGit$ git log --since="2 hours"
commit b7b310d220628530d1feb9e8046ccb59039d59f2
Author: zhangshuli <[email protected]>
Date:   Sat Feb 28 14:25:11 2015 +0000

    cherry-pick

commit ac63f3e801e4022b34ba14ed9d1ae75b022ff067
Merge: 02906a1 618011f
Author: zhangshuli <[email protected]>
Date:   Sat Feb 28 14:18:04 2015 +0000

    Merge branch ‘third‘ into parent

commit 02906a15dc15be5fefd5e41dcd3977bb2f762cff
Author: zhangshuli <[email protected]>
Date:   Sat Feb 28 14:10:45 2015 +0000

    yahe

commit 618011fc23e6fe8108e830e2812a298ad217d0cb
Author: zhangshuli <[email protected]>
Date:   Sat Feb 28 14:08:45 2015 +0000

    commit ddd

commit 6a74382c9c481515cd70136ce3212ace7aa1c50e
Author: zhangshuli <[email protected]>
Date:   Sat Feb 28 14:08:24 2015 +0000

    commit ccc.txt

commit 2a30fca479f7a953d9348067670f292780d49515
Author: zhangshuli <[email protected]>
Date:   Sat Feb 28 14:05:12 2015 +0000

    change
[email protected]-MS-7817:~/myGit$

5)设定显示格式

git log --pretty=format:"%h %s" 1.0..HEAD

git log --pretty=oneline

[email protected]7817:~/myGit$ git log --pretty=format:"%h %s"
b7b310d cherry-pick
ac63f3e Merge branch ‘third‘ into parent
02906a1 yahe
618011f commit ddd
6a74382 commit ccc.txt
2a30fca change
44d288e Merge branch ‘thrid‘ into parent
6436f0b merge
ece2e62 tar zip
e2e09c4 son rebase
3a1cbb4 ccc add
5ad0d1e parent test
abbb929 branch test
2e32a61 master add
f73968d my second commit
4c7cede my frist commit
[email protected]-MS-7817:~/myGit$ git log --pretty=oneline
b7b310d220628530d1feb9e8046ccb59039d59f2 cherry-pick
ac63f3e801e4022b34ba14ed9d1ae75b022ff067 Merge branch ‘third‘ into parent
02906a15dc15be5fefd5e41dcd3977bb2f762cff yahe
618011fc23e6fe8108e830e2812a298ad217d0cb commit ddd
6a74382c9c481515cd70136ce3212ace7aa1c50e commit ccc.txt
2a30fca479f7a953d9348067670f292780d49515 change
44d288e4316e47ac9b6e3ee6a4152aceff5d17ce Merge branch ‘thrid‘ into parent
6436f0b6bbe0da18ce65e90dd7ea90cf4008bbe3 merge
ece2e62de24d0262c9cb70a59aeb7f2764316225 tar zip
e2e09c4898f9246b1d0fab2dc6845506f5960742 son rebase
3a1cbb43f8d1bd5224529122b15fd1fcf682b60d ccc add
5ad0d1ece9b7fd69a9e4deb990c8a4d05d2cbee1 parent test
abbb92978273479688bda512ba5e7d78b1dbf803 branch test
2e32a615216de70720d314b8fe53c1bddccfd6a3 master add
f73968df521e48d23289c5563f7ac7fbc5937b57 my second commit
4c7cede87be37783ca4528fbdcd79bc08e3870fe my frist commit
[email protected]-MS-7817:~/myGit$ 

另外,有两个符号需要说明下

^:这个表示的是回溯,如HEAD^指得就是当前版本的前一个版本,HEAD^^(=HEAD^2)

~: 跟^ 的用法类似

不过,不知道为什么如下的方法不正确

[email protected]7817:~/myGit$ git diff --stat HEAD~4
 aaa.txt           |    1 +
 ccc.txt           |    1 -
 ddd.txt           |    2 +-
 merge.txt         |    1 -
 mysite-1.0.tar.gz |  Bin 501 -> 0 bytes
 mysite-1.0.zip    |  Bin 501 -> 0 bytes
 6 files changed, 2 insertions(+), 3 deletions(-)
[email protected]-MS-7817:~/myGit$ git diff --stat HEAD^3
fatal: ambiguous argument ‘HEAD^3‘: unknown revision or path not in the working tree.
Use ‘--‘ to separate paths from revisions
[email protected]-MS-7817:~/myGit$

git diff --stat number:用来查看 版本的详细差异(包括具体更改的文件)

git blame 文件名:查看对这个文件作出更改的历史记录

[email protected]7817:~/myGit$ git blame aaa.txt
f73968df (zhangshuli 2015-02-13 13:24:15 +0000 1) my second commit
e2e09c48 (zhangshuli 2015-02-27 09:50:58 +0000 2) add son
b7b310d2 (zhangshuli 2015-02-28 14:25:11 +0000 3) cherry-pick
f73968df (zhangshuli 2015-02-13 13:24:15 +0000 4)
[email protected]-MS-7817:~/myGit$

当然,它也可以添加参数,如

git blame -L number1 ,number2 filename

[email protected]7817:~/myGit$ git blame -L 1,2 aaa.txt
f73968df (zhangshuli 2015-02-13 13:24:15 +0000 1) my second commit
e2e09c48 (zhangshuli 2015-02-27 09:50:58 +0000 2) add son
[email protected]-MS-7817:~/myGit$
时间: 2024-08-27 18:30:35

worktools-git 工具的使用总结(5)的相关文章

git工具的使用

Git工具的出现降低了软件版本维护的成本,极大的提高了工作效率,在这里列出了一些使用方法,方便以后查看. 1.Git的初始化->创建一个Git仓库:git init 2.创建信息:git config --global user.name-->创建用户名 git config --global user.email-->创建用户邮箱 git config --list-->查看配置信息 3.提交创建的文件:git add 文件的路径(这是具体的一个文件路径)-->添加到缓存区

Myeclipse如何使用自带git工具向远程仓库提交代码

先看一下Myeclipse自带的git工具  本人是在码云上面注册的账号,上面有项目的仓库,将仓库的项目克隆到本地之后,在myeclipse中导入该项目. 那么如何将修改后的代码再提交到码云上面? 第一步:将改动的代码标记 项目右键:team->synchronize workspace  点击确定  项目右键>add to git index  第二步:将工作空间的代码提交到本地仓库 commit  需要写出注释  第三步:将远程仓库的代码合并到本地仓库 pull 这一步可能需要解决代码冲突

日积月累Learning Linux(一):在Linux下安装Git工具

背景: 由于项目需要,经常在github上下载开源库项目源代码.因此最近决定花时间系统学习一下Linux下的相关软件的安装方法,这里就以Git工具的安装为例进行讲解. Linux(fedora18)安装Git工具: 1)Git与Github的区别: Github是一个网站,给用户提供git服务.相当于web版的Git工具,在Github上注册个账号,就可以享受网站提供的Git服务.而Git是一个版本控制系统,与SVN.CVS是类似的概念,简单点说就是对你的文件的一种版本管理(此处所谓的版本其实就

Git详解之六 Git工具(转)

Git 工具 现在,你已经学习了管理或者维护 Git 仓库,实现代码控制所需的大多数日常命令和工作流程.你已经完成了跟踪和提交文件的基本任务,并且发挥了暂存区和轻量级的特性分支及合并的威力. 接下来你将领略到一些 Git 可以实现的非常强大的功能,这些功能你可能并不会在日常操作中使用,但在某些时候你也许会需要. 6.1  修订版本(Revision)选择 Git 允许你通过几种方法来指明特定的或者一定范围内的提交.了解它们并不是必需的,但是了解一下总没坏处. 单个修订版本 显然你可以使用给出的

windows中使用Git工具连接GitHub(配置篇)

Git在源码管理领域目前占很大的比重了,而且开源的项目很多都转到GitHub上面了.例如:jQuery, reddit, Sparkle, curl, Ruby on Rails, node.js, ClickToFlash, Erlang/OTP,CakePHP, Redis. 本文详细的说明了如何在Windows下安装配置Git工具连接GitHub.并可以在Visual Studio中使用Git. 一.准备工具 1.下载Git Extensions.地址 http://code.google

【转】第 02 天:在 Windows 平台必裝的三套 Git 工具

原文网址:https://github.com/doggy8088/Learn-Git-in-30-days/blob/master/docs/02%20%E5%9C%A8%20Windows%20%E5%B9%B3%E5%8F%B0%E5%BF%85%E8%A3%9D%E7%9A%84%E4%B8%89%E5%A5%97%20Git%20%E5%B7%A5%E5%85%B7.markdown 要開始使用 Git 版本控管,首先要安裝適當的 Git 工具,這個系列的文章主要還是以 Windows

git工具的使用教程

Git 是一种版本控制工具,也叫作版本管理软件(分布式管理软件).这里介绍Git的基本使用步骤,关于 Git 更详细的介绍,读者可以参考其官方网站提供的文档. 1  安装Git 在Ubuntu系统中安装Git工具: # sudo apt-get install git 如果是第一次使用 Git,需要进行如下设置: # git config --global user.name "laoyao" # git config --global user.email "[email 

代码管理工具:使用github和git工具管理自己的代码

一.git工具和账户创建 1.1 安装 Git 是 Linus Torvalds 最近实现的源代码管理软件."Git 是一个快速.可扩展的分布式版本控制系统,它具有极为丰富的命令集,对内部系统提供了高级操作和完全访问." Git 目前主要由寻找 CVS 或专有代码管理解决方案替代物的软件开发人员所使用.Git 与 CVS 有很多区别: 分支更快.更容易. 支持离线工作:本地提交可以稍后提交到服务器上. Git 提交都是原子的,且是整个项目范围的,而不像 CVS 中一样是对每个文件的.

git工具学习

最近实习的时候,遇到git工具,发现好强大之前没用过,特来学习下,然后自己注册了一个github账号,结合git命令练习一下,git的安装就不说了. git简介: git是分布式版本控制系统,相对于集中式版本控制系统有很大的优势,集中式版本控制系统最大的毛病就是必须联网才能工作,并且,分布式版本控制系统的安全性要高很多,因为每个人电脑里都有完整的版本库,某一个人的电脑坏掉了不要紧,随便从其他人那里复制一个就可以了.而集中式版本控制系统的中央服务器要是出了问题,所有人都没法干活了. git常用命令

如何禁用/关闭vs2017自带的Git工具的?

对于用习惯了独立Git工具和命令行的人来说,看到Visual Studio自带的Git工具后,很是别扭,到处充满了不习惯,而且是不是还会出现电脑卡顿的现象(可能是我自身电脑配置一般的问题). 如何关闭vs2017自带的Git工具? 解决方案:Vs顶部菜单 - 工具 - 选项 - 源代码管理 - 插件选择 - 当前源代码插件:设置为“无”. 如何禁用Vs2017自带的Git ? 解决方案: ctrl + r 输入 regedit 打开注册表后找到:HKEY_CURRENT_USER\Softwar