Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
GitHub能否以补丁形式显示对一个文件所做更改的历史记录?_Git_Version Control_Github - Fatal编程技术网

GitHub能否以补丁形式显示对一个文件所做更改的历史记录?

GitHub能否以补丁形式显示对一个文件所做更改的历史记录?,git,version-control,github,Git,Version Control,Github,如果执行git log--patch--path/to/file,您将获得该文件的历史记录以及每次提交时对其进行的所有更改的差异,如下所示: $ git log --patch -- git-rebase.sh commit 20351bb06bf4d32ef3d1a6849d01636f6593339f Author: Ramkumar Ramachandra <artagnon@gmail.com> Date: Sat Jun 15 18:43:26 2013 +0530

如果执行
git log--patch--path/to/file
,您将获得该文件的历史记录以及每次提交时对其进行的所有更改的差异,如下所示:

$ 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
$git log--patch--git-rebase.sh
提交20351bb06bf4d32ef3d1a6849d01636f6593339f
作者:拉姆库马尔·拉马钱德拉
日期:2013年6月15日星期六18:43:26+0530
rebase:使用“git存储库”简化逻辑
rebase没有理由知道隐藏的实施情况。在里面
如果应用autostash会导致冲突,请替换
finish_rebase()中的相关代码只需调用'git stash store'。
签字人:拉姆库马尔·拉马钱德拉
签字人:Junio C Hamano
diff——git a/git-rebase.sh b/git-rebase.sh
索引d0c11a9..17be392 100755
---a/git-rebase.sh
+++b/git-rebase.sh
@@-153,11+153,8@@finish_rebase(){
然后
echo“$(gettext'Applied autostash.”)
其他的
-ref_stash=refs/stash&&
->>“$GIT\u DIR/logs/$ref\u stash”&&
-git更新ref-m“autostash”$ref_stash$stash_sha1||
-骰子“$(eval_gettext'无法存储$stash_sha1')”
-
+git储藏室-m“autostash”-q$stash_sha1||
+骰子“$(eval_gettext”无法存储\$stash_sha1”)”
gettext应用autostash导致冲突。
你的零钱在藏匿处是安全的。
您可以随时运行“git stash pop”或“git stash drop”。
提交2e6e276decde2a9f04fc29bce734a49d3ba8f484
作者:拉姆库马尔·拉马钱德拉
日期:2013年6月14日星期五18:47:52+0530
重基:在适当的地方使用peel_Commitish()
命令行上指定的修订为和
参数的形式可以是:/quxery;因此,请使用peel\u commitish()来
解决它们。t/rebase和t/rebase中失败的测试是交互式的
现在通过。
签字人:拉姆库马尔·拉马钱德拉
签字人:Junio C Hamano
diff——git a/git-rebase.sh b/git-rebase.sh
索引d0c11a9..6987b9b 100755
---a/git-rebase.sh
+++b/git-rebase.sh
@@-434,7+434,7@@n然后
转移
;;
以撒
-上游=`git rev parse--verify“${上游_name}^0”`||
+上游=$(peel_Commitish“${upstream_name}”)||
die“$(eval_gettext“无效上游\$上游名称”)”
上游_arg=“$上游_名称”
其他的
@@中的-470,7+470,7@@case“$on_name”
fi
;;
*)
-onto=$(git rev parse--验证“${onto_name}^0”)||
+onto=$(peel_Commitish“$onto_name”)||
die“$(eval\u gettext”未指向有效的提交:\$to\u name”)“
;;
以撒

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

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

http://github.com///commits//

…其中:

  • 是回购协议持有人的用户名
  • 是回购协议的名称
  • 可以是“主”或任何其他分支
  • 希望是不言自明的

随机选择,这里是一个例子。

使用GitHub的界面,直接URL答案(顺便说一句,这是完全正确的)的替代方法是:

  • 单击“源”视图
  • 切换到所需的分支
  • 查找所需的文件,直到找到该文件的实际源代码视图
  • 单击右上角的“历史记录”

根据以上答案和我自己寻找这一确切特征的尝试,这个问题的正确答案似乎是


编辑:在你否决投票之前,也许可以试着证明我是错的。有时正确的答案不是你想听到的。

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

sudo-apt-get-install-tig

然后呢,

tig路径/到/文件/

它将显示所有提交及其各自的更改


Talat Parwez

+1.更多的提交API:(在GitHub API部分)这是git log path/to/file。我想要git log-p path/to/file。所做的只是显示最新的更新,而不是更新的历史记录。我不知道为什么会这样。我想人们没有仔细阅读这个问题。这个答案没有给你一个差异列表,比如
git log--patch--path/to/file
,这是OP问的或者。@jcoffland它正在被升级,因为像我这样的大多数人都觉得这很有帮助,而这正是我们想要的,尽管忽略了op的问题。这实际上也没有给出原始海报想要什么。他想要补丁输出,就像他用
git log-p--file
得到的一样。你展示了什么只是一个特定文件的日志,如
git log--file
,没有不同的补丁程序。它提供了一些接近您所要查找的内容,但不幸的是,它不是针对单个文件的。如果您对它提出功能请求,GitHub开发团队可能会添加它。这并没有提供问题的答案。评论或请求在作者澄清后,在他们的帖子下方留下评论-你可以随时在自己的帖子上发表评论,一旦你有足够的评论,你就可以发表评论了。这个答案既具体又准确,不像其他两个回答都不承认问题的内容。这是正确的答案。Github没有w可以像git log-p--file那样显示单个文件的补丁结果和日志其他两个答案不正确。这个答案节省了我的时间和沮丧。“这并没有提供问题的答案。”当然可以,这也节省了我的时间。谢谢jhk。