(git) chemin relatif de sortie diff ?
-
20-12-2019 - |
Question
J'ai besoin d'obtenir des différences dans mon dépôt qui ne sont pas relatives à la base du dépôt, mais plutôt par rapport à une base donnée ou à un chemin donné.
Par défaut j'obtiens :
git diff
diff --git a/path/to/file b/path/to/file
index 0cc125e..9bf911e 100644
--- a/path/to/file
+++ b/path/to/file
Mais ce que je veux, c'est quelque chose comme :
git diff --prefix=/new/path/to
diff --git a/new/path/to/file b/new/path/to/file
index 0cc125e..9bf911e 100644
--- a/new/path/to/file
+++ b/new/path/to/file
J'ai examiné l'option --relative (pas ce que je recherche), le préfixe --src/dst (ceux-ci ne peuvent modifier que les parties "a" ou "b".Est-ce que j'ai raté quelque chose de basique ?
La solution
Semble être --src-prefix
et --dst-prefix
sont ce que tu demandes :
$ cd .../git/builtin
$ ed - var.c << end
> 0a
> xxx
> .
> wq
> end
$ git diff
diff --git a/builtin/var.c b/builtin/var.c
index aedbb53..5210013 100644
--- a/builtin/var.c
+++ b/builtin/var.c
@@ -1,3 +1,4 @@
+xxx
/*
* GIT - The information manager from hell
*
(jusqu'à présent, assez standard ;maintenant:)
$ git diff --src-prefix=a/new/ --dst-prefix=b/new/
diff --git a/new/builtin/var.c b/new/builtin/var.c
index aedbb53..5210013 100644
--- a/new/builtin/var.c
+++ b/new/builtin/var.c
@@ -1,3 +1,4 @@
+xxx
/*
* GIT - The information manager from hell
*
Vous pouvez combiner cela avec --relative
:
$ git diff --relative --src-prefix=a/new/ --dst-prefix=b/new/
diff --git a/new/var.c b/new/var.c
index aedbb53..5210013 100644
--- a/new/var.c
+++ b/new/var.c
@@ -1,3 +1,4 @@
+xxx
/*
* GIT - The information manager from hell
*
$
Autres conseils
git diff
imprime les chemins (des fichiers modifiés) à partir de la racine du dépôt - peu importe où vous vous trouvez lors de l'exécution de la commande.
git diff --relative
imprimera les chemins à partir du répertoire dans lequel vous vous trouvez.
Donc, si vous avez besoin de chemins ne commençant pas à partir de la racine du dépôt, descendez (cd) vers le répertoire (dans votre arborescence de dépôt) à partir duquel vous avez vos chemins de départ.