Quand j'ai:git: stade que les nouveaux fichiers
-
répertoire de travail sale
- ,
- zone de mise en scène sale,
- et je copiais des nouveaux fichiers au projet,
comment est-ce que j'établis seulement les nouveaux?
git alias adduntracked=…
Quand j'ai:git: stade que les nouveaux fichiers
comment est-ce que j'établis seulement les nouveaux?
git alias adduntracked=…
Cet alias respectera vos modèles ignorés (intégrés, globaux et par répertoire, comme décrit par l'aide pour git-ls-files --exclude-standard
). Il ira au plus haut niveau de votre arbre.
[alias]
adduntracked=!git add $(git ls-files -o --exclude-standard)
Je propose quelque chose comme ceci à copier:
for i in source/path ; do cp source/path/$i ./$i ; git add $i ; done
Je ne suis pas très bien au script shell, mais ce serait une tentative
+1 pour l'exemple de la boucle – takeshin
semble assez égale à 'git ajouter la source/path' et ne filtre pas les fichiers non suivis des autres. –
git add -u
est ce que j'utilise pour mettre en scène untracked .
Edit: les commentaires me ont rappelé ci-dessous que son git add .
qui ajoute untracked (ainsi que les fichiers modifiés, ce qui je pense est pas ce que vous voulez?). J'utilise le git add -u
pour mettre en scène les fichiers supprimés.
L'aide dit que git add -u est en fait --update. – Gauthier
De git help: -u, --update Ne correspond à
Et précisément pendant que je collais le texte a ajouté, sa réponse est apparue :) – Gauthier
Si vous voulez ajouter tous les fichiers non suivis dans la zone de mise en scène:
git add .
Je suppose que vous voulez que cela, tout en gardant les changements Unstaged aux fichiers suivis en dehors de l'index .
git stash
git add .
git stash apply
Cela aiderait-il?
Merci pour cette puce :) Ce que je cherchais vraiment, c'est: 'for i in $ (git ls-files -o); faire git ajouter $ i; done' – takeshin
@takesin: Vous n'avez pas vraiment besoin de la boucle for: 'git add $ (git ls-fichiers -o --exclude-standard)'. Notez que j'ai ajouté '--exclude-standard' afin que vous n'ayez pas à ajouter des fichiers que vous voulez ignorer. – bstpierre
Nice! Bien que je dirais «stash pop» pour retourner vos cachettes à l'état d'origine. – joachim
git ls-fichiers -o --exclude-standard | xargs git add
Un peu d'amélioration à l'solution of bstpierre, vous pouvez utiliser cette variante pour être en mesure de spécifier le répertoire dans lequel vous voulez ajouter des fichiers:
[alias]
adduntracked="!f() { git add $(git ls-files -o --exclude-standard [email protected]); }; f"
Pour permettre des fichiers avec des caractères spéciaux dans leur noms, utilisez l'alias suivant:
au = "!git ls-files -z -o --exclude-standard | xargs -0 git add; #"
Notez que le '!' Au début de l'alias le fait fonctionner au niveau supérieur de l'arbre. J'ai annulé l'édition qui a supprimé cette note de la réponse après un nouveau test pour vérifier que cela fonctionne vraiment au plus haut niveau. – bstpierre
bstpierre, qu'entendez-vous par "travailler au plus haut niveau"? –
** Note ** ceci a des problèmes pour les noms de fichiers contenant des espaces, '; rm -rf --no-preserve-root /;', etc. Voir [ma réponse] (http://stackoverflow.com/a/39489545)/5353461) pour une solution plus robuste. –