Si lo hace git log --patch -- path/to/file
, obtendrá el historial del archivo junto con una diferencia de todos los cambios realizados con cada confirmación, como este:
$ git log --patch -- git-rebase.sh
commit 20351bb06bf4d32ef3d1a6849d01636f6593339f
Author: Ramkumar Ramachandra <[email protected]>
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 <[email protected]>
Signed-off-by: Junio C Hamano <[email protected]>
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 <[email protected]>
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 <[email protected]>
Signed-off-by: Junio C Hamano <[email protected]>
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
Quiero poder obtener el mismo tipo de formato usando la interfaz web de GitHub (no la línea de comando) , y quiero un enlace para enviar a otra persona sin el código.
git
version-control
github
ma11hew28
fuente
fuente
Respuestas:
La siguiente URL mostrará todas las confirmaciones de un solo archivo en un formato similar a
git log -p
:http://github.com/<username>/<project>/commits/<branch>/<path/to/file>
...dónde:
<username>
es el nombre de usuario de la persona propietaria del repositorio<project>
es el nombre del repositorio<branch>
puede ser 'maestro' o cualquier otra rama<path/to/file>
es de esperar que se explique por sí mismoEscogiendo (algo) al azar, aquí hay un ejemplo del repositorio vim-fugitive .
fuente
git log --patch -- path/to/file
cuál es lo que pidió el OP.Según las respuestas anteriores y mis propios intentos de encontrar esta característica exacta, parece que la respuesta correcta a esta pregunta es no .
Editar: antes de votar en contra, tal vez intente demostrar que estoy equivocado. A veces, la respuesta correcta no es la que desea escuchar.
fuente
Una alternativa a la respuesta de URL directa (que por cierto es perfectamente correcta) usando la interfaz de GitHub es:
fuente
git log -p -- file
. Lo que ha mostrado es solo el registro de un archivo en particulargit log -- file
, sin los parches de diferencias.Si está en Linux, instale TIG como:
y entonces,
Te mostrará todas las confirmaciones y sus respectivos cambios.
Talat Parwez
fuente