798 votes

git add seulement modifié les changements et de les ignorer sans traces de fichiers

J'ai couru "git status" et énumérés ci-dessous sont quelques-uns des fichiers qui ont été modifiés/ou sous la rubrique "modifications ne sont pas mis en scène pour s'engager". Il a également énuméré quelques sans traces de fichiers que je veux ignorer (j'ai un ".gitignore" de fichiers dans ces répertoires).

Je veux mettre les fichiers modifiés dans la mise en scène afin que je puisse les valider. Quand j'ai couru "git add .", il a ajouté que les fichiers modifiés ET les fichiers que je veux ignorer de mise en scène.

Comment puis-je ajouter uniquement les fichiers modifiés, et d'ignorer la non chaînée des fichiers si le git status ci-dessous.

Aussi, ce sont mes ".gitignore" fichiers de travail 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")

1097voto

manojlds Points 96599

Idéalement, votre .gitignore doit prévenir le sans traces ( et ignoré )des fichiers dans le statut, ajoutés à l'aide de git add etc. Donc, je voudrais vous demander de corriger votre .gitignore

Vous pouvez le faire git add -u , de sorte qu'il ne la scène les fichiers modifiés.

Vous pouvez aussi le faire git commit -a de commettre uniquement les modifications.

Notez que si vous avez utilisé git add ., alors vous devez utiliser git add -u . (Voir "la Différence de "git add -A" et "git add ."").

122voto

user877329 Points 986

Cela a fonctionné pour moi:

#!/bin/bash

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

4voto

Karl Bielefeldt Points 15469

Vous n'avez pas dit quelle est actuellement votre .gitignore, mais un .gitignore avec le contenu suivant dans le répertoire racine de votre répertoire devrait faire l'affaire.

.metadata
build

1voto

bismoymurasing Points 21

Cela devrait vous aider :

git add -p

Merci :)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X