我在这里阅读了git diff手册http://git-scm.com/docs/git-diff,但我找不到答案。
我在git diff origin/master
之后根据此格式git diff [--options] <commit> <commit> [--] [<path>…]
(省略了commit == HEAD)使用git fetch
来查看在执行git merge origin/master
之前已完成的更改}。
它非常有用,我可以在应用更改之前查看代码。我唯一的问题是我在团队中工作,我想知道哪个提交者对每个文件进行了更改。
我没有找到显示提交者的git diff
的任何选项。查看提交者的最简单方法是什么(如果可能,请使用git diff
)
编辑:
我发现我的问题没有足够详细。
例如,当我做git diff
时,我得到:
--- a/path/to/my/file.html
+++ b/path/to/my/file.html
@@ -xx,y +xx,y @@
- {% if sett.value|lower != "false" %}
+ {% if sett.value|lower != False %}
所以我知道有人改变了这一行并提交了它。理想我希望有类似的东西:
User John Doe commit the following :
--- a/path/to/my/file.html
+++ b/path/to/my/file.html
@@ -xx,y +xx,y @@
- {% if sett.value|lower != "false" %}
+ {% if sett.value|lower != False %}
答案 0 :(得分:1)
git diff
可能不是您想要的工具。
您可以尝试使用git blame
,其中&#34;使用最后修改该行&#34;的修订版中的信息来注释给定文件中的每一行。
编辑:如果您处于评论中描述的情况,您已完成git fetch
并希望查看尚未合并的任何提交的提交者,那么您可以使用git log <remote>/<branch_name>
。然后,您可以将输出限制为原点提前的提交数,例如git log -2 origin/master
可以让您找到尚未合并到本地主分支的2个提交的提交者。
EDIT2:尝试git show
,用于提交&#34;显示日志消息和文本差异&#34; (包括提交者)。它适用于单个提交,因此您需要指定要查看的那个,有many ways to do this,例如获取提交哈希,使用origin/master^
等语法
答案 1 :(得分:1)
获取origin/master
中最新提交的提交者的最简单方法是使用git log
:
git log -1 origin/master
-1
指示git log
仅显示一次提交origin/master
从这里开始,您可以为调整后的git log
设置别名,例如使用:
git log -1 --pretty=format:"%an (%ae)" origin/master
将打印<Author Name> (<Author E-Mail>)
。
有关格式化输出的详细信息,请参阅git log
的文档,添加别名,信任SO:How do I alias commands in git?
答案 2 :(得分:0)
假设您在跟踪分支上,那么您可以
git log HEAD..@{u} -p
如果默认值不适合您,您可以调整日志参数以准确显示您想要的信息,但这应该非常接近您想要的信息。要明确显示提交者,您可以使用--pretty=fuller
或将%cn
和/或%ce
添加到漂亮格式,以分别指定提交者名称和电子邮件。
您还没有使用跟踪分支,请将@{u}
替换为您要合并的分支(origin/master
)