789 votes

Visualiser un fichier dans une branche Git différente sans changer de branche

Est-il possible d'ouvrir un fichier dans une branche git sans sortir de cette branche ? Comment ?

Essentiellement, je veux pouvoir ouvrir un fichier dans mon pages github sans changer de branche en permanence. Je ne veux pas la modifier, je veux juste la visualiser.

18 votes

Toutes les réponses ont omis le fait que vous devez spécifier le chemin complet du fichier avec git show : stackoverflow.com/questions/610208/ et stackoverflow.com/questions/2364147/

24 votes

Aujourd'hui, vous pouvez utiliser git show a1b35:./file.txt pour utiliser des chemins relatifs.

3 votes

@VonC - heureusement qu'il y a la complétion des tabulations en fonction des branches :)

1103voto

Scolytus Points 3279

Cela devrait fonctionner :

git show branch:file

branche peut être n'importe quel ref (branch, tag, HEAD, ...) et fichier est le chemin complet du fichier. Pour l'exporter, vous pouvez utiliser

git show branch:file > exported_file

Vous devriez également consulter VonC Les réponses de la Commission européenne à certaines questions connexes :

MISE À JOUR 2015-01-19 :

Aujourd'hui, vous pouvez utiliser des chemins relatifs avec git show a1b35:./file.txt .

37 votes

Vous pouvez également ouvrir le fichier dans vim : git show branch:file | vim - (Remarquez le tuyau "|" et le tiret de fin après la commande vim : vim -

0 votes

@GregBurghardt : C'est cool. Ce serait encore mieux si je pouvais d'une manière ou d'une autre donner à vim un indice sur la manière de mettre le contenu en évidence

0 votes

Je pense que si vous le faites vim -c "set syntax on" - qui devrait activer la coloration syntaxique. Je n'ai pas encore essayé.

72voto

Adam Dymitruk Points 34999
git show somebranch:path/to/your/file

vous pouvez également créer plusieurs fichiers et les concaténer :

git show branchA~10:fileA branchB^^:fileB

Il n'est pas nécessaire de fournir le chemin d'accès complet au fichier, les chemins d'accès relatifs sont acceptables, par exemple :

git show branchA~10:../src/hello.c

Si vous souhaitez obtenir le fichier dans le répertoire local (revenir sur un seul fichier), vous pouvez passer à la caisse :

git checkout somebranch^^^ -- path/to/file

0 votes

Pour les utilisateurs de Windows : C'est l'un des rares endroits où git bash pour Windows ne sait pas normaliser la casse et les séparateurs de chemin, c'est-à-dire que vous devez faire correspondre la casse exactement et utiliser / au lieu de \ - même si la finalisation de cmd essaie de vous dire le contraire.

45voto

inger Points 4841

Un moyen simple et convivial de consulter un fichier : git gui browser <branch> qui vous permet d'explorer le contenu de n'importe quel fichier.

Il est également disponible dans le menu Fichier de git gui . La plupart des autres interfaces graphiques plus avancées (Qgit, Egit, etc.) permettent également de parcourir et d'ouvrir des fichiers.

2 votes

Cette commande donne "git : 'gui' n'est pas une commande git. Voir 'git --help'. Je suis un débutant, que se passe-t-il ?

3 votes

Cela fonctionne (à ma grande surprise), voir git-scm.com/docs/git-gui - J'utilise la version 2.5.2.Windows.1 de git.

0 votes

Cette réponse a été très utile ! Merci. Je dois préciser que j'utilise git bash sous Windows.

24voto

legoscia Points 12766

Si vous utilisez Emacs, vous pouvez taper C-x v ~ o M-x vc-revision-other-window pour voir une révision différente du fichier que vous êtes en train d'éditer (les balises, les branches et les hachages fonctionnent tous).

0 votes

Existe-t-il un moyen d'obtenir cela dans Vim ? (Je suis ouvert aux plug-ins).

12voto

akuhn Points 12241

Ajoutez ce qui suit à votre ~/.gitconfig fichier

[alias]
  cat = "!git show \"$1:$2\" #"

Ensuite, essayez ceci

git cat BRANCHNAME FILEPATH

Personnellement, je préfère des paramètres séparés sans deux points. Pourquoi ? Ce choix reflète les paramètres de la fonction checkout que j'ai l'habitude d'utiliser assez fréquemment et que je trouve donc beaucoup plus facile à mémoriser que les paramètres bizarres séparés par deux points de la commande show mando.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X