Je souhaite extraire une copie de la dernière version d'un fichier conservé dans un référentiel git et la transmettre dans un script pour un traitement. Avec svn ou hg, j'utilise simplement la commande "cat":
Imprimez les fichiers spécifiés tels qu'ils étaient à la révision donnée. Si aucune révision n'est donnée, le parent du répertoire de travail est utilisé, ou pointe si aucune révision n'est extraite.
(cela vient de la description de hg cat dans la documentation hg)
Quelle est la commande équivalente pour faire cela avec git?
git
version-control
Richard Boulton
la source
la source
Réponses:
Où rev est la révision.
Voir http://git.or.cz/course/svn.html pour une comparaison des commandes git et svn.
la source
il y a "git cat-file" que vous pouvez exécuter comme ceci:
$ git cat-file blob v1.0:path/to/file
où vous pouvez remplacer 'v1.0' par la branche, la balise ou le commit SHA que vous voulez, puis 'path / to / file' par le chemin relatif dans le référentiel. Vous pouvez également passer «-s» pour voir la taille du contenu si vous le souhaitez.
peut être plus proche des commandes 'cat' auxquelles vous êtes habitué, bien que le 'show' mentionné précédemment fasse à peu près la même chose.
la source
git show
est la commande que vous recherchez. De la documentation:la source
Travaillez également avec les noms de branche (comme HEAD dans le 1er p):
la source
Utilisez
git show
, comme dansgit show commit_sha_id:path/to/some/file.cs
.la source
J'ai écrit un script shell git cat, qui est sur github
la source
Il ne semble pas y avoir de substitut direct . Cette entrée de blog explique comment faire l'équivalent en déterminant le dernier commit, puis en déterminant le hachage du fichier dans ce commit, puis en le vidant.
(l'entrée de blog a des fautes de frappe et utilise ce qui précède avec la commande
svn
)la source
Aucune des
git show
suggestions ne satisfait vraiment parce que (essayez comme je pourrais), je ne peux pas trouver un moyen de ne pas obtenir les métadonnées crues du haut de la sortie. L'esprit de cat (1) est juste de montrer le contenu. Ceci (ci-dessous) prend un nom de fichier et un numéro facultatif. Le nombre correspond à la manière dont vous souhaitez revenir en arrière. (Les validations qui ont modifié ce fichier. Les validations qui ne modifient pas le fichier cible ne sont pas comptabilisées.)affiche le contenu de filename.txt à partir du dernier commit de filename.txt et le contenu de 3 commits avant cela.
la source
Pour ceux qui utilisent bash, la fonction suivante est utile:
Mettez-le dans votre
.bashrc
fichier (vous pouvez utiliser le nom de votre choix autre quegcat
.Exemple d'utilisation:
ou
ou
la source