repo status
me montre beaucoup de changements indésirables.
Il serait dupliqué si j'entre dans chaque projet et utilise git reset --hard
.
Existe-t-il un moyen de réinitialiser toutes les modifications à l'aide du repo, quelque chose comme repo reset --hard
?
Ceci est la commande que j'utilise pour ce genre de choses, très utile
repo forall -vc "git reset --hard"
Qu'est-ce que tout cela signifie ici?
les repo forall
s'exécutera pour tous les dépôts.
-v
est verbeux, il affichera donc la sortie de la commande
les -c "COMMAND TO EXECUTE"
est la commande réelle que vous souhaitez
S'il est nécessaire de rétablir le dossier de travail à l'état propre où vous n'avez pas de modifications locales et aucun fichier non suivi (c'est-à-dire où état du dépôt ne montre rien), j'ai trouvé ces deux approches utiles sur synchronisation du dépôt et fichiers supprimés/modifiés
repo forall -c 'git reset --hard ; git clean -fdx'
ou
rm -rf * ; repo sync -l
// note that .repo is preserved after that
Notez que cela n'équivaut pas à l'initialisation d'un nouveau dépôt local et à la synchronisation (par exemple, la cachette est préservée)
Si vous n'êtes pas sûr de ce qui se passe, veuillez lire le fil complet synchronisation du repo et fichiers supprimés/modifiés
J'utilise la commande repo forall avec la syntaxe ci-dessous et cela m'aide à réinitialiser les fichiers de suivi.
repo forall -p -c 'git checkout -f foo'
où foo
doit être remplacé par un nom de branche légitime.
#!/bin/bash
for gitdir in $(find . -name .git); do
pushd $(dirname $gitdir)
git reset --hard
popd
done