Cette commande fonctionne dans Git 2.30.0.Windows.1 via la coquille de la commande 'Windows'.

git checkout [commit hash] -- */migrations/*

Cela ne fonctionne pas avec le terminal Mate ou Bash (Git 2.17). Le problème est qu'ils substituent le contenu actuel des répertoires */migrations/* (qui sont vides ou ne disposent pas des fichiers présents dans le COMMIS, je veux les tirer de). Le terminal de mate est-ce que je sois célibataire ou double citation.

Si j'invoque Bash, puis, à la nouvelle ligne de commande, ajoutez des citations simples ou doubles, Git dit qu'il n'a pas littéralement appelé */migrations/*:

error: pathspec '*/migrations/*' did not match any files known to git

Je peux obtenir le contenu des fichiers de migrations si je remplace les répertoires une à la fois, mais il y a plus de 20 dossiers de migrations et je suppose que je viens de manquer un peu de tradition sur la façon d'obtenir ce que je veux d'un terminal Linux. Quelqu'un peut-il suggérer ce que je devrais faire?

0
Atcrank 3 mai 2021 à 07:36

1 réponse

Meilleure réponse

Cette syntaxe */migrations/* se réfère à Point de vue . Ni racine de racine ni répertoire de travail actuel .
Essayez-ceux avec ls Commande avant checkout avec git:

  • *migrations/*
  • ./*migrations/*
  • $PWD/migrations/*

Et si vous avez la bonne sortie avec ls, appliquez-le à git checkout ...


Test 1

ls */tmp/*
ls: cannot access '*/tmp/*': No such file or directory

Test 2

 ls /tmp/*
 it has output ...
 it has output ...
0
Shakiba Moshiri 3 mai 2021 à 04:52