2009-02-12 6 views

Répondre

108

Ceci est une variante simplifiée de solution de Strager:

git log --pretty=format: --name-status | cut -f2- | sort -u 

Edit: Remerciements s à Jakub pour m'avoir appris un peu plus dans les commentaires, cette version a un pipeline plus court et donne plus de chance à Git de faire les choses correctement.

git log --pretty=format: --name-only --diff-filter=A | sort -u 
+6

@Dustlin: Ajouter --diff-filter = Une option (liste uniquement les fichiers ajoutés). La version actuelle (sans filtrer uniquement les fichiers ajoutés) échouerait si vous avez activé la détection de renommer et que vous avez renommé l'historique. Je pense que vous pouvez alors utiliser --name-only au lieu de --name-status et supprimer 'cut -f2-' du pipeline. –

+0

Dans l'un de mes repos, je reçois plusieurs lignes en double (y compris un certain nombre de lignes vides au début de la sortie) avec la deuxième commande qui ne sont pas dupes avec le premier. –

+0

Si vous avez besoin d'un peu plus d'informations que le nom du fichier: $ git log --pretty = format: "% h% an [% cd]:% s" --name seulement | couper -f2- | sort -u | grep Filename.ext – Nitay

1

Vous pouvez exécuter git-log --name-status, qui fait écho à quelque chose comme:

commit afdbbaf52ab24ef7ce1daaf75f3aaf18c4d2fee0 
Author: Your Name <[email protected]> 
Date: Tue Aug 12 13:28:34 2008 -0700 

    Added test file. 

A  test 

fichiers extraire ensuite ajouté:

git-log --name-status | sed -ne 's/^A[^u]//p' | sort -u 
10

Cela fait la bonne chose pour vérifier si un nom de fichier était toujours présent dans le repo pas seulement sur la branche actuelle.

git log --all --pretty=format: --name-only --diff-filter=A | sort - | grep fubar 
0

Voici deux alias utiles: FindFile ff et FindFilewithCopies ffc:

# Find if one file ever had into repository 
ff = "!git log --pretty=format: --name-status --all -M -B | sort -u | grep $1 #" 
# The same as above but showing copied files 
ffc = "!git log --pretty=format: --name-status --all -C -M -B | sort -u | grep $1 #" 

Vous obtenez des informations sur les noms de fichiers et les opérations avec eux.

utilisation Exemple:

$ git ff create 
A  database/migrations/2014_10_12_000000_create_users_table.php 
A  database/migrations/2014_10_12_100000_create_password_resets_table.php 
A  database/migrations/2015_05_11_200932_create_boletin_table.php 
A  database/migrations/2015_05_15_133500_create_usuarios_table.php 
D  database/migrations/2015_05_12_000000_create_users_table.php 
M  database/migrations/2015_05_11_200932_create_boletin_table.php 
R051 database/migrations/2014_10_12_000000_create_users_table.php database/migrations/2015_05_12_000000_create_users_table.php 

$ git ffc create 
A  database/migrations/2014_10_12_000000_create_users_table.php 
A  database/migrations/2014_10_12_100000_create_password_resets_table.php 
A  database/migrations/2015_05_11_200932_create_boletin_table.php 
A  database/migrations/2015_05_15_133500_create_usuarios_table.php 
C052 database/migrations/2014_10_12_000000_create_users_table.php database/migrations/2015_05_11_210246_create_boletin_nosend_table.php 
D  database/migrations/2015_05_12_000000_create_users_table.php 
M  database/migrations/2015_05_11_200932_create_boletin_table.php 
R051 database/migrations/2014_10_12_000000_create_users_table.php database/migrations/2015_05_12_000000_create_users_table.php 
Questions connexes