2010-08-10 3 views
3

Je me demande s'il y a une meilleure façon de vérifier la version initiale d'un fichier que la manière évidente:git: Comment vérifier la version initiale d'un fichier dans un git

git log --reverse [path/to/file] 

copier le premier SHA1

git checkout [found sha1] [path/to/file] 

Nous avons la tête pour le plus récent et le^suffixe pour retourner un (ou plus) mais je ne l'ai pas vu un bon moyen de revenir au début.

Répondre

4

Eh bien, vous devez utiliser la substitution de commande:

git checkout $(git log --follow --pretty=%H path/to/file | tail -n 1) path/to/file 

mais il ne va être quelque chose de fondamentalement plus simple. Git suit le contenu, pas les fichiers, donc il n'a pas d'enregistrement de la "version un du fichier A" - marcher l'histoire est la façon de le trouver.

J'ai retiré le --reverse pour rendre la commande plus courte - elle n'accélère pas réellement l'utilisation, car en interne, elle trouve tout et s'inverse avant d'imprimer, au lieu d'imprimer au fur et à mesure.

Si c'est quelque chose que vous faites beaucoup (même si je ne sais pas pourquoi vous le feriez), vous pouvez l'alias.

+0

J'avais peur de ça. quant à pourquoi cela arrive assez souvent pour que je demande à propos. J'utilise git-p4 au travail mais il ne supporte pas la branche p4. donc chaque nouvelle branche p4 d'une codeline est un nouveau repo git. Donc, il n'est pas rare que je veuille comparer un fichier de la première version dans le repo pour voir ce qui a changé dans la nouvelle branche. il serait utile d'être capable de faire la comparaison similaire à un fichier tel qu'il était dans une branche git donnée (pas repo) quand cette branche a été créée. – masukomi

Questions connexes