Ich habe "git status" ausgeführt und unten sind einige Dateien aufgelistet, die unter der Überschrift "changes not staged for commit" geändert wurden. Es wurden auch einige nicht verfolgte Dateien aufgelistet, die ich ignorieren möchte (ich habe eine ".gitignore" Datei in diesen Verzeichnissen).
Ich möchte die geänderten Dateien in Staging ablegen, damit ich sie übertragen kann. Als ich "git add ." ausgeführt habe, wurden die geänderten Dateien UND die Dateien, die ich ignorieren möchte, zu Staging hinzugefügt.
Wie füge ich nur die geänderten Dateien hinzu und ignoriere die nicht verfolgten Dateien, wenn ich den folgenden Git-Status erhalte?
Funktionieren meine ".gitignore" -Dateien auch richtig?
$ 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")
Idealerweise sollte Ihre .gitignore
verhindern, dass die nicht verfolgten (und ignorierten) Dateien im Status angezeigt werden, mit git add
hinzugefügt werden usw. Ich würde Sie also bitten, Ihre .gitignore
zu korrigieren
Sie können git add -u
ausführen, damit die geänderten und gelöschten Dateien angezeigt werden.
Sie können auch git commit -a
ausführen, um nur die geänderten und gelöschten Dateien zu übertragen.
Beachten Sie, dass Sie, wenn Sie Git in einer Version vor 2.0 haben und git add .
verwenden, git add -u .
verwenden müssen (siehe "Unterschied von "git add -A
" und "git add .
"").
Das hat bei mir funktioniert:
#!/bin/bash
git add `git status | grep modified | sed 's/\(.*modified:\s*\)//'`
Oder noch besser:
$ git ls-files --modified | xargs git add
Sie haben nicht gesagt, was Ihre .gitignore
ist, aber eine .gitignore
mit folgendem Inhalt in Ihrem Stammverzeichnis sollte genügen.
.metadata
build