Jeg kjørte " git status " og oppført nedenfor er noen filer som ble endret / eller under overskriften " endringer ikke iscenesatt for commit ". Den oppførte også noen usporede filer som jeg vil ignorere (jeg har en ".gitignore " fil i disse katalogene).
Jeg vil sette de endrede filene i iscenesettelse slik at jeg kan forplikte dem. Da jeg kjørte " git add .", la den til de endrede filene OG filene jeg vil ignorere til iscenesettelse.
Hvordan legger jeg bare til de endrede filene og ignorerer de ikke-sporede filene hvis de presenteres med git-statusen nedenfor.
Fungerer også filene mine ".gitignore " som de skal?
$ 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")
Ideelt sett bør .gitignore
forhindre at filer som ikke spores (og ignoreres) vises i status, legges til ved hjelp av git add
osv. Så jeg vil be deg om å korrigere `.gitignore``.
Du kan gjøre git add -u
slik at det vil iscenesette de endrede og slettede filene.
Du kan også gjøre git commit -a
for å overføre bare de endrede og slettede filene.
Merk at hvis du har Git av versjon før 2.0 og brukte git add .
, må du bruke git add -u .
(Se "Forskjellen på "git add -A
" og "git add .
"").
Dette fungerte for meg:
#!/bin/bash
git add `git status | grep modified | sed 's/\(.*modified:\s*\)//'`
Eller enda bedre:
$ git ls-files --modified | xargs git add