J'ai exécuté "git status" et énuméré ci-dessous sont quelques fichiers qui ont été modifiés / ou sous le titre "changements non organisés pour la validation". Il a également répertorié certains fichiers non suivis que je veux ignorer (j'ai un fichier ".gitignore" dans ces répertoires).
Je souhaite mettre les fichiers modifiés en attente afin de pouvoir les valider. Lorsque j'ai exécuté "git add.", Il a ajouté les fichiers modifiés ET les fichiers que je veux ignorer à la mise en scène.
Comment ajouter uniquement les fichiers modifiés et ignorer les fichiers non suivis s'ils présentent l'état git ci-dessous.
De plus, mes fichiers ".gitignore" fonctionnent-ils correctement?
$ git status
# On branch addLocation
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: someProject/path/domain/viewer/LocationDO.java
# modified: someProject/path/service/ld/LdService.java
# modified: someProject/path/service/ld/LdServiceImpl.java
# modified: someProject/path/web/jsf/viewer/LocationFormAction.java
# modified: someProject/war/WEB-INF/classes/message/viewer/viewer.properties
# modified: someProject/war/page/viewer/searchForm.xhtml
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# .metadata/
# someProject/build/
no changes added to commit (use "git add" and/or "git commit -a")
Réponses:
Idéalement, votre
.gitignore
devrait empêcher les fichiers non suivis (et ignorés) d'être affichés dans l'état, ajoutés à l'aide degit add
etc. Je vous demanderais donc de corriger votre.gitignore
Vous pouvez le faire
git add -u
pour qu'il met en scène les fichiers modifiés et supprimés.Vous pouvez également faire
git commit -a
pour valider uniquement les fichiers modifiés et supprimés.Notez que si vous avez Git de version antérieure à 2.0 et utilisé
git add .
, alors vous devrez utilisergit add -u .
(Voir " Différence de"git add -A
"et"git add .
" ").la source
add -u
) n'ajoute pas seulement lesmodified
fichiers, il en "ajoute" aussideleted
.. quelque chose que j'essaie actuellement d'empêcher.for fil in $(git diff --name-only --relative); do git add $fil; done
. Si je devais l'utiliser beaucoup (je ne le fais pas), je ferais juste un alias pour cela dans mon~/.bashrc
fichier. Bien sûr, cela ne fonctionne que dans bash.IFS=$(echo -en "\n\b"); for file in $(git diff --name-only); do git add "$file"; done
git add -u
est l'abréviation degit add --update
etgit commit -a
est l'abréviation degit commit --all
Cela a fonctionné pour moi:
Ou encore mieux:
la source
git add -u
, donc elle ne répond pas à la question.-a: inclut tous les fichiers actuellement modifiés / supprimés dans ce commit. Gardez cependant à l'esprit que les (nouveaux) fichiers non suivis ne sont pas inclus.
-m: définit le message du commit
la source
Vous n'avez pas dit ce qui est actuellement votre
.gitignore
, mais un.gitignore
avec le contenu suivant dans votre répertoire racine devrait faire l'affaire.la source
gitognore
contenait un début (ignorer tout). Mais un simple.gitignore
dans le répertoire supérieur est généralement beaucoup plus simple à utiliser et suffit.Il m'est arrivé d'essayer ceci afin que je puisse voir la liste des fichiers en premier:
exécuter:
Edit: (voir commentaires) Cela pourrait être réalisé en une seule étape:
la source
git status | grep modified | awk '{print $2}' | xargs git add && git status
Je ne sais pas s'il s'agit d'une fonctionnalité ou d'un bug, mais cela a fonctionné pour nous:
git commit '' -m "Message"
Notez la liste de fichiers vide ''. Git interprète cela pour valider tous les fichiers suivis modifiés, même s'ils ne sont pas intermédiaires, et ignorer les fichiers non suivis.
la source
Pour mettre en scène des fichiers modifiés et supprimés
git add -u
la source