git ajoute uniquement les modifications modifiées et ignore les fichiers non suivis

J’ai couru “git status” et voici quelques fichiers qui ont été modifiés / ou sous la rubrique “changements non mis en place pour commit”. Il a également répertorié certains fichiers non suivis que je veux ignorer (j’ai un fichier “.gitignore” dans ces répertoires).

Je veux mettre les fichiers modifiés en attente afin que je puisse les valider. Lorsque j’ai exécuté “git add.”, Il a ajouté les fichiers modifiés ET les fichiers que je veux ignorer au stade intermédiaire.

Comment puis-je append uniquement les fichiers modifiés et ignorer les fichiers non suivis s’ils sont présentés avec le statut git ci-dessous.

Aussi, mes fichiers “.gitignore” fonctionnent-ils correctement?

$ git status # On branch addLocation # Changes not staged for commit: # (use "git add ..." to update what will be committed) # (use "git checkout -- ..." 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 ..." to include in what will be committed) # # .metadata/ # someProject/build/ no changes added to commit (use "git add" and/or "git commit -a") 

Idéalement, votre .gitignore devrait empêcher que les fichiers non suivis (et ignorés) apparaissent dans le statut, ajoutés en utilisant git add etc. Je vous demanderais donc de corriger votre .gitignore

Vous pouvez faire git add -u pour qu’il mette en scène les fichiers modifiés et supprimés.

Vous pouvez également faire git commit -a pour ne valider que les fichiers modifiés et supprimés.

Notez que si vous avez Git de la version antérieure à 2.0 et utilisez git add . , alors vous devez utiliser git add -u . (Voir ” Différence de” git add -A “et” git add . ” “).

Cela a fonctionné pour moi:

 #!/bin/bash git add `git status | grep modified | sed 's/\(.*modified:\s*\)//'` 

Ou encore mieux:

 $ git ls-files --modified | xargs git add 

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.

 .metadata build 

Je suis arrivé à essayer cela pour que je puisse voir la liste des fichiers en premier:

  git status | grep "modified:" | awk '{print "git add " $2}' > file.sh cat ./file.sh 

exécuter:

  chmod a+x file.sh ./file.sh 

Edit: (voir les commentaires) Cela pourrait être réalisé en une seule étape:

  git status | grep modified | awk '{print $2}' | xargs git add && git status 

Je ne suis pas sûr que ce soit une fonctionnalité ou un bug mais cela a fonctionné pour nous:

git commit '' -m "Message"

Notez la liste de fichiers vide ”. Git interprète cela pour commettre tous les fichiers suivis modifiés, même s’ils ne sont pas mis en scène, et ignorer les fichiers non suivis.