2013-02-21 1 views
4

J'ai une branche locale avec un couple de commits. Maintenant, j'ai besoin de réécrire tous ces commits et changer un nom de fichier, mais seulement dans un répertoire spécifique. Je ne veux pas de changements à commettre pas sur ma branche locale.filtre-branche sur la branche actuelle et le directeur actuel seulement

Courir git filter-branch 'some command' master..HEAD debout dans ce répertoire me donne

You need to run this command from the toplevel of the working tree. 

Bien sûr, je peux courir ce à partir du niveau supérieur, mais cela me forcer à écrire mon script avec le chemin du répertoire que je veux vraiment changer et Finalement, je voudrais exécuter le même script dans quelques répertoires sans vraiment savoir ce qu'il y a de chemin complet.

Existe-t-il un moyen d'exécuter filter-branch et de faire en sorte que le script ait le répertoire courant comme répertoire de travail?

Répondre

3

Non, il n'y en a pas. Mais faites en sorte que votre script prenne un paramètre puis exécutez-le dans votre niveau supérieur:

git filter-branch 'yourscript the/sub/directory' master..HEAD 
Questions connexes