标签: git-log

git-log中的颜色

当您运行git log --decorate --pretty=oneline输出时,将具有(HEAD, refs/published/master, master)与着色一样的条目.

我的gitconfig中也有以下内容:

[color "branch"]
    current = yellow reverse
    local = yellow
    remote = green
Run Code Online (Sandbox Code Playgroud)

在执行如下自定义格式时,如何复制这些颜色?

git log --decorate --stat --graph --pretty=format:"%d %Cgreen%h%Creset (%ar - %Cred%an%Creset), %s%n"
Run Code Online (Sandbox Code Playgroud)

git git-log

102
推荐指数
5
解决办法
4万
查看次数

为什么"git log-foo"不适用于已删除的文件foo?

我的存储库经历了以下更改:

  1. ......一些不相关的提交......
  2. 提交foo包含100行内容的新文件
  3. ......介入提交,其中一些涉及foo......
  4. 插入foo现有文件顶部bargit rm foo同一提交中的内容
  5. ...更多不相关的提交......

现在我想查看已删除文件的日志foo.我读过的所有东西,包括SO,都说我应该可以git log -- foo,但是这个命令不产生任何输出.

如果我发现包含删除的提交foo我可以git log 1234abcd -- foo看到它的日志,所以我认为我的路径foo不是问题.还要注意git merge-base HEAD 1234abcd输出1234abcd[...],所以我认为应该证明提交可以从中获得HEAD.请注意,foo我的工作树中没有文件(很明显,因为它已被删除).在OS X上使用Git 1.7.1.1.

为什么不git log -- foo适合我,我该如何解决?谢谢!

git git-log

89
推荐指数
1
解决办法
2万
查看次数

为什么git log不会显示已移动文件的历史记录,我该怎么办呢?

我已经重命名了几个文件git mv,使用git stash过,快速查看了HEAD(没有更改它),然后又git stash pop重新获得了全部.我的动作已经从提交列表中消失了,所以我重新使用它们git rm并且提交消息声称git发现重命名是重命名.所以我没想到它.

但是现在,提交后,我无法获取移动文件的历史记录!以下是git对有关提交的说法:

~/projects% git log --summary
commit de6e9fa2179ae17ec35a5c368d246f19da27f93a
Author: brone
Date:   Wed Dec 8 22:37:54 2010 +0000

    Moved R_DebugUI into runtime

 delete mode 100644 test/R_DebugUI_iOS.h
 delete mode 100644 test/R_DebugUI_iOS.m
 create mode 100644 system/runtime/src/R_DebugUI_iOS.h
 create mode 100644 system/runtime/src/R_DebugUI_iOS.m

 <<snip older commits>>
 ~/projects%
Run Code Online (Sandbox Code Playgroud)

我现在正试图获取其中一个移动文件的历史记录,所以我可以看一个旧版本,但我没有得到任何非常有用的东西:

~/projects/system/runtime/src% git log --follow --find-copies-harder -M -C R_DebugUI_iOS.m
commit de6e9fa2179ae17ec35a5c368d246f19da27f93a
Author: brone
Date:   Wed Dec 8 22:37:54 2010 +0000

    Moved R_DebugUI into runtime
~/projects/system/runtime/src% 
Run Code Online (Sandbox Code Playgroud)

(我也尝试过没有 …

git history dvcs rename git-log

84
推荐指数
4
解决办法
4万
查看次数

如何阅读git log graph

它说,在git社区书中

您可以做的另一个有趣的事情是使用'--graph'选项可视化提交图,如下所示:

$ git log --pretty=format:'%h : %s' --graph
* 2d3acf9 : ignore errors from SIGCHLD on trap
*   5e3ee11 : Merge branch 'master' of git://github.com/dustin/grit
|\
| * 420eac9 : Added a method for getting the current branch.
* | 30e367c : timeout code and tests
* | 5a09431 : add timeout protection to grit
* | e1193f8 : support for heads with slashes in them
|/
* d6016bc : require time for xmlschema
Run Code Online (Sandbox Code Playgroud)

它将为提交历史记录行提供非常好的ASCII表示.

我该如何阅读此图表?如何420eac9从剩下的有什么不同?

git git-log git-branch

83
推荐指数
2
解决办法
3万
查看次数

Git:如何列出此分支上的提交但不是合并分支的提交

假设您的git commit历史如下所示:

A---B---C---D---E---F master
     \         /
      X---Y---Z topic
Run Code Online (Sandbox Code Playgroud)

是否可以让git列表只有master,AF上的提交?换句话说,如果提交是在合并分支上,我不希望它显示.

git branch git-log git-branch

78
推荐指数
2
解决办法
4万
查看次数

如何使Git日志显示今天的所有提交?

我希望能够看到我今天使用的所有提交git log.我提出了git log --after="yesterday"
但是,这对我来说似乎有点尴尬,是否有更简单的命令来达到同样的效果?

git git-log

75
推荐指数
5
解决办法
1万
查看次数

Git在日志中显示所有分支(但不是stashes)

我有一个Git别名扩展为:

git log --graph --oneline --all --decorate
Run Code Online (Sandbox Code Playgroud)

根据man git log有几个可疑的选择:--not--branches; 但我不能让它正常工作.

我应该如何编辑以隐藏藏匿处?


仅供参考:根据已接受的问题评论,我的.gitconfig别名现在看起来像这样:

[alias]
    l = log --branches --remotes --tags --graph --oneline --decorate --notes HEAD
Run Code Online (Sandbox Code Playgroud)

git git-stash git-log

74
推荐指数
3
解决办法
2万
查看次数

git log怎么样 - 计数?

我有一个简单的测试存储库,只有几个提交,并希望看到日期和时间过滤日志:

$ git log --author="automatix" --since="2013-01-30" --pretty -- test
commit ea0719bef142659fa561c9d040b2120012ed0184
Date:   Thu Jan 31 02:03:12 2013 +0100

commit ab4a8387bc4d9bdb4f67212df77eb1fc3d8b6304
Date:   Thu Jan 31 01:59:11 2013 +0100

commit a0b027beba2cd03571bb9475b9db9542f8efe990
Date:   Thu Jan 31 01:50:38 2013 +0100

commit add77c8fe2ba9254c11b98e14facede3420dc51c
Date:   Thu Jan 31 01:48:34 2013 +0100

commit e6e323c05d37c74fcabeb9186b95c0d49b862e6f
Date:   Thu Jan 31 01:46:27 2013 +0100

commit 8c286391e54d3fc1e210950b1320fd6f013a8f84
Date:   Thu Jan 31 01:41:27 2013 +0100

commit 9c880595e57f717383796fa2940f41f0f42f7e2a
Date:   Thu Jan 31 01:38:17 2013 +0100

commit a95527f36a533e1ecba1aadceea31a9dcbe1a8db
Date:   Thu Jan 31 01:30:00 2013 …

git git-log

69
推荐指数
1
解决办法
7万
查看次数

Move file and directory into a sub-directory along with commit history

How can I move a directory and files to a sub-directory along with commit history?

For example:

  • Source directory structure: [project]/x/[files & sub-dirs]

  • Target directory structure: [project]/x/p/q/[files & sub-dirs]

git git-log

67
推荐指数
4
解决办法
5万
查看次数

Git能否真正跟踪单个函数从1个文件到另一个文件的移动?如果是这样,怎么样?

有几次,我遇到过这样的说法:如果你将一个函数从一个文件移动到另一个文件,Git可以跟踪它.例如,这个条目说,"Linus说,如果你将一个函数从一个文件移动到另一个文件,Git会告诉你整个移动过程中单个函数的历史."

但我对Git的一些引擎盖设计有一点了解,我不知道这是怎么回事.所以我想知道......这是正确的陈述吗?如果是这样,这怎么可能?

我的理解是Git将每个文件的内容存储为Blob,每个Blob都有一个全局唯一的标识,该标识来自其内容和大小的SHA哈希.然后Git将文件夹表示为树.任何文件名信息都属于Tree,而不属于Blob,因此文件重命名例如显示为对Tree的更改,而不是Blob.

因此,如果我有一个名为"foo"的文件,其中包含20个函数,以及一个名为"bar"的文件,其中包含5个函数,我将其中一个函数从foo移动到bar(分别生成19和6), Git如何检测到我将该函数从一个文件移动到另一个文件?

根据我的理解,这将导致2个新的blob存在(一个用于修改的foo,一个用于修改的条).我意识到可以计算diff以显示函数从一个文件移动到另一个文件.但是我没有看到关于函数的历史如何可能与bar而不是foo相关联(反正不是自动的).

如果Git的是真正看里面单个的文件,并计算每个函数BLOB(这将是疯狂的/不可行的,因为你必须知道如何解析任何可能的语言),那么我可以看到这是可能的.

所以...声明是否正确?如果它是正确的,那么我理解中缺少什么?

git git-diff git-log

66
推荐指数
4
解决办法
8415
查看次数

标签 统计

git ×10

git-log ×10

git-branch ×2

branch ×1

dvcs ×1

git-diff ×1

git-stash ×1

history ×1

rename ×1