GitHub可以显示修补程序forms对一个文件所做的更改的历史logging吗?

如果你使用git log --patch -- path/to/file ,你将得到git log --patch -- path/to/file的历史logging,以及每次提交所做的所有更改的差异,如下所示:

 $ git log --patch -- git-rebase.sh commit 20351bb06bf4d32ef3d1a6849d01636f6593339f Author: Ramkumar Ramachandra <artagnon@gmail.com> Date: Sat Jun 15 18:43:26 2013 +0530 rebase: use 'git stash store' to simplify logic rebase has no reason to know about the implementation of the stash. In the case when applying the autostash results in conflicts, replace the relevant code in finish_rebase () to simply call 'git stash store'. Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> diff --git a/git-rebase.sh b/git-rebase.sh index d0c11a9..17be392 100755 --- a/git-rebase.sh +++ b/git-rebase.sh @@ -153,11 +153,8 @@ finish_rebase () { then echo "$(gettext 'Applied autostash.')" else - ref_stash=refs/stash && - >>"$GIT_DIR/logs/$ref_stash" && - git update-ref -m "autostash" $ref_stash $stash_sha1 || - die "$(eval_gettext 'Cannot store $stash_sha1')" - + git stash store -m "autostash" -q $stash_sha1 || + die "$(eval_gettext "Cannot store \$stash_sha1")" gettext 'Applying autostash resulted in conflicts. Your changes are safe in the stash. You can run "git stash pop" or "git stash drop" it at any time. commit 2e6e276decde2a9f04fc29bce734a49d3ba8f484 Author: Ramkumar Ramachandra <artagnon@gmail.com> Date: Fri Jun 14 18:47:52 2013 +0530 rebase: use peel_committish() where appropriate The revisions specified on the command-line as <onto> and <upstream> arguments could be of the form :/quuxery; so, use peel_committish() to resolve them. The failing tests in t/rebase and t/rebase-interactive now pass. Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> diff --git a/git-rebase.sh b/git-rebase.sh index d0c11a9..6987b9b 100755 --- a/git-rebase.sh +++ b/git-rebase.sh @@ -434,7 +434,7 @@ then shift ;; esac - upstream=`git rev-parse --verify "${upstream_name}^0"` || + upstream=$(peel_committish "${upstream_name}") || die "$(eval_gettext "invalid upstream \$upstream_name")" upstream_arg="$upstream_name" else @@ -470,7 +470,7 @@ case "$onto_name" in fi ;; *) - onto=$(git rev-parse --verify "${onto_name}^0") || + onto=$(peel_committish "$onto_name") || die "$(eval_gettext "Does not point to a valid commit: \$onto_name")" ;; esac 

我希望能够使用GitHub的Web界面(不是命令行)获得相同的格式,并且我想要一个链接发送给其他人没有代码。

以下URL将以类似于git log -p的格式显示单个文件的所有提交:

http://github.com/<username>/<project>/commits/<branch>/<path/to/file>

…哪里:

  • <username>是拥有回购的人的用户名
  • <project>是回购名称
  • <branch>可以是“主”或任何其他分支
  • <path/to/file>有希望不言自明

在(有点)随机挑选,这里是一个vim-逃亡回购的例子。

根据上面的答案和我自己试图find这个确切的特征,看来这个问题的正确答案是否定的

编辑:在您投票之前,也许尝试和certificate我错了。 有时正确的答案不是你想听到的。

使用GitHub接口的直接URL答案(BTW是完全正确的)的替代方法是:

  • 点击“来源”视图
  • 切换到所需的分支
  • find所需的文件,直到find文件的实际源视图
  • 点击右上angular的“历史logging”

如果你在Linux上,那么把TIG安装为:

sudo apt-get install tig

接着,

tigpath/到/文件/

它会告诉你所有的提交和他们各自的变化

塔拉特Parwez