Если вы это сделаете 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
Я хочу иметь возможность получить такой же формат с помощью веб-интерфейса GitHub (а не командной строки) , и я хочу, чтобы ссылку отправили кому-то еще без кода.
git
version-control
github
ma11hew28
источник
источник
Ответы:
Следующий URL-адрес покажет все коммиты для одного файла в формате, аналогичном
git log -p
:http://github.com/<username>/<project>/commits/<branch>/<path/to/file>
...где:
<username>
имя пользователя человека, которому принадлежит репо<project>
это название репо<branch>
может быть master или любой другой веткой<path/to/file>
Надеюсь, говорит само за себяВыбор (отчасти) случайный, вот пример из репозитория vim-fugitive .
источник
git log --patch -- path/to/file
тому, о чем просил OP.Основываясь на приведенных выше ответах и моих собственных попытках найти именно эту функцию, кажется, что правильный ответ на этот вопрос - нет. .
Изменить: прежде чем вы проголосуете против, возможно, попытайтесь доказать, что я ошибаюсь. Иногда правильный ответ - это не то, что вы хотите услышать.
источник
Альтернативой прямому URL-ответу (который, кстати, является совершенно правильным) с использованием интерфейса GitHub, является:
источник
git log -p -- file
. То, что вы показали, - это просто журнал для определенного файла, напримерgit log -- file
, без патчей различий.Если вы работаете в Linux, установите TIG как:
а потом,
Он покажет вам все коммиты и их соответствующие изменения.
Талат Парвез
источник