web-dev-qa-db-fra.com

GitHub peut-il afficher l'historique des modifications apportées à un fichier sous forme de correctif?

Si tu fais git log --patch -- path/to/file, vous obtiendrez l'historique du fichier avec un diff de toutes les modifications apportées à chaque commit, comme ceci:

$ 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

Je veux pouvoir obtenir le même type de format en utilisant l'interface web de GitHub (pas la ligne de commande), et je veux un lien à envoyer à quelqu'un d'autre sans le code.

88
ma11hew28

L'URL suivante affichera toutes les validations pour un seul fichier dans un format similaire à git log -p:

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

...où:

  • <username> est le nom d'utilisateur de la personne qui possède le dépôt
  • <project> est le nom du référentiel
  • <branch> peut être "maître" ou toute autre branche
  • <path/to/file> est, je l'espère, explicite

Choisir au hasard (quelque peu), voici un exemple du repo vim-fugitive .

83
Tim Henigan

Sur la base des réponses ci-dessus et de mes propres tentatives pour trouver cette fonctionnalité exacte, il semble que la bonne réponse à cette question soit non.

Edit: avant de voter, essayez de me prouver le contraire. Parfois, la bonne réponse n'est pas celle que vous souhaitez entendre.

48
jhk

Une alternative à la réponse URL directe (dont BTW est parfaitement correcte) en utilisant l'interface de GitHub est de:

  • Cliquez sur la vue 'Source'
  • Passer à la branche souhaitée
  • Recherchez le fichier souhaité jusqu'à ce que vous arriviez à la vue source réelle du fichier
  • Cliquez sur 'historique' dans le coin supérieur droit
34
Xubin