我正在尝试使用 --pretty=format:"...." 获取自定义的 git 日志列表,但似乎无法找出如何将引用名称着色为git log --oneline. 到目前为止,这是我的日志命令:
git log --pretty=format:"%C(yellow)%h%Creset %d %ci (%cr)%n ==> %s%n"
Run Code Online (Sandbox Code Playgroud)
它显示了我想要的所有内容,除了参考的颜色:
有没有办法让参考文献以彩色打印,例如git log --oneline?
如何列出两次提交之间“触及”的所有文件?我正在寻找一个类似于git diff COMMIT1..COMMIT2 --name-only但包括稍后修改和恢复的文件的命令。
例如,假设我有一个包含一系列提交(线性历史)的存储库:C0<-C1<-C2<-C3<-C4。提交 C1 引入了一个新文件 F,然后提交 C3 将其从存储库中删除。我正在寻找一个命令,给定 C0 和 C4,它会告诉我中间有一个文件 F。即使 C0 和 C4 中没有这样的文件。因此git diff根本不会提及文件F。
虽然我在提交消息中添加了 Co-authored-by: ,git log --name-only但只显示一位作者,而不显示其他作者,我怎样才能让 git 显示共同作者呢?
在Gitk中,显示提交会给出如下输出:
Author: ...
Committer: ...
Parent: ...auth/parser)
Parent: ... (Merge branch '...')
Child: ...
Branches: remotes/me/foo, foo
Run Code Online (Sandbox Code Playgroud)
有没有办法让这种输出git log?使用git log --graph提供类似的信息,但在我的存储库中使用长期分支,可能需要大量滚动才能找到提交所在的分支.
(类似的问题如何在`git log`中显示分支的名称?)
我想在我的git日志上做一些统计数据来得到类似的东西:
10 Daniel Schmidt
5 Peter
1 Klaus
Run Code Online (Sandbox Code Playgroud)
第一列是提交计数,第二列是提交者.我已经达到了这个目的:
git log --raw |
grep "^Author: " |
sort |
uniq -c |
sort -nr |
less -FXRS
Run Code Online (Sandbox Code Playgroud)
有趣的部分是
grep "^Author: "
Run Code Online (Sandbox Code Playgroud)
我想修改一个漂亮的正则表达式来排除邮件地址.使用Rubular这样的东西http://rubular.com/r/mEzP2hFjGb工作,但如果我将它插入grep(或管道其他的)它将不会得到我正确的输出.
Sidequestion:是否有可能获得计数,而作者在保持这种管道命令样式的同时将其他东西与空白分开?我希望稍后在我们两个列之间有一个更好的分隔符(也许是一些颜色^^)
非常感谢你的帮助!
我应该为subtree pull --squash 我的项目所依赖的第三方模块执行,但我不小心忘记了--squash.现在我的项目提交历史充斥着第三方模块提交.它们分散在整个日志中.
这个烂摊子需要消失.我如何识别属于第三方模块的所有提交,将它们压缩为一个,然后从项目历史中清除它们,如果可能的话?
更多信息:
请注意,我已经做了几次提交,我打算在操作失败后保留.
我试图使用参数来使用列表中给定范围内的列表所有提交git log.由于某种原因,它似乎没有给我正确的结果(或者我可能理解错误的命令?).
这是我正在做的步骤:
克隆回购
git clone https://github.com/openstack/nova.git
难道git log这些都是过去的9条:
d5bde44 Merge "Make metadata password routines use Instance object"
6cbc9ee Merge "Fix object change detection"
39b7875 Merge "Fix object leak in nova.tests.objects.test_fields.TestObject"
94d1034 Merge "maint: correct docstring parameter description"
6407f17 Merge "Fix live_migration method's docstring"
7406661 Merge "Fix infinitely reschedule instance due to miss retry info"
9d8a34f Merge "Remove unused code from test_compute_cells"
429cd4b Fix object change detection
01381b8 Fix object leak in nova.tests.objects.test_fields.TestObject
...
Run Code Online (Sandbox Code Playgroud)让我们说我希望从之后开始所有提交01381b8 …
我知道很多Q / A都解决了这类问题,我已经研究了它们,但实际上我没有找到获取想要的方法。
我正在寻找两个哈希之间的git日志,包括该范围内使用的哈希日志。
从SO中的文档和其他Q / A中,我发现可以通过以下方式实现:
git log oldest...Newest
Run Code Online (Sandbox Code Playgroud)
但这不返回最早的日志。
例如在此仓库https://github.com/galniv/jira-git-helper/commits/master
我希望两者之间的日志52209d3738f80e49c724502503d6a72c1e24e6bc最旧和5456f8cecc5ef5cef5abc1f820a4f044e2153734最新。
git log 52209d3738f80e49c724502503d6a72c1e24e6bc...5456f8cecc5ef5cef5abc1f820a4f044e2153734返回结果仅返回两个日志,而不是3:
commit 5456f8cecc5ef5cef5abc1f820a4f044e2153734
Author: Gal Niv <gal.niv@gmail.com>
Date: Tue Mar 21 15:33:55 2017 -0400
Update README.md
commit a4c184ecc7fb4c50705c0ac90c94752a31ce7251
Author: Gal Niv <gal.niv@gmail.com>
Date: Tue Mar 21 11:48:30 2017 -0400
Remove console.log, display current branch name
Run Code Online (Sandbox Code Playgroud)
如何包含最旧哈希的日志?
git version 2.11.0.windows.1
Run Code Online (Sandbox Code Playgroud)
这是一个重现我的测试存储库的bash片段:
git init
# Create a file
echo Hello > a.txt
git add a.txt
git commit -m 'First commit'
# Change it on one branch
git checkout -b feature
echo Hi > a.txt
git commit -am 'Change'
# Rename it on the other
git checkout master
git mv a.txt b.txt
git commit -m 'Move'
# Merge both changes
git merge --no-edit feature
Run Code Online (Sandbox Code Playgroud)
最后,git log --graph --pretty=oneline --abbrev-commit打印:
* 06b5bb7 Merge branch 'feature'
|\
| …Run Code Online (Sandbox Code Playgroud) 我找到了一个有关如何删除提交的示例,但是它包含以下格式的git log
Number Hash Commit Message Author
1 2c6a45b (HEAD) Adding public method to access protected method Tom
2 ae45fab Updates to database interface Contractor 1
3 77b9b82 Improving database interface Contractor 2
4 3c9093c Merged develop branch into master Tom
5 b3d92c5 Adding new Event CMS Module Paul
6 7feddbb Adding CMS class and files Tom
7 a809379 Adding project to Git Tom
Run Code Online (Sandbox Code Playgroud)
当我发出git log命令时,我正在以另一种格式登录并且没有数字(任务需要)。
如何获得git log数字?
git ×10
git-log ×10
git-branch ×2
bash ×1
dvcs ×1
git-diff ×1
git-rebase ×1
git-subtree ×1
regex ×1