git добавляет только измененные изменения и игнорирует неотслеженные файлы
Я запустил " git status "и ниже перечислены некоторые файлы, которые были изменены/или под заголовком"изменения, не поставленные для фиксации".
В нем также перечислены некоторые неотслеженные файлы, которые я хочу игнорировать (у меня есть ".gitignore " файл в этих каталогах).
Я хочу поместить измененные файлы в промежуточное состояние, чтобы я мог их зафиксировать. Когда я побежал " git add .", он добавил измененные файлы и файлы, которые я хочу игнорировать для постановки.
Как добавить только измененные файлы и игнорировать неотслеживаемый файлы, если состояние ЖКТ ниже.
также, мои ".gitignore " файлы работают правильно?
$ 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")
5 ответов:
в идеале ваш
.gitignoreдолжен предотвратить отображение неотслеженных (и игнорируемых )файлов в состоянии, добавленном с помощьюgit addetc. Поэтому я бы попросил вас исправить ваш.gitignoreможно сделать
git add -uпотому что он измененных и удаленных файлов.вы также можете сделать
git commit -aдля фиксации только измененных и удаленных файлов.обратите внимание, что если у вас есть Git версии до 2.0 и используется
git add ., тогда вам нужно будет использоватьgit add -u .(см. "разница в "git add -A" и "git add ."").
это сработало для меня:
#!/bin/bash git add `git status | grep modified | sed 's/\(.*modified:\s*\)//'`или еще лучше:
$ git ls-files --modified | xargs git add
вы не сказали, что в настоящее время ваш
.gitignore, а.gitignoreсо следующим содержимым в корневом каталоге должен сделать трюк..metadata build
Не уверен, что это функция или ошибка, но это сработало для нас:
git commit '' -m "Message"обратите внимание на пустой список файлов ". Git интерпретирует это, чтобы зафиксировать все измененные отслеживаемые файлы, даже если они не являются поэтапными, и игнорировать неотслеженные файлы.
я случайно попробовал это, чтобы сначала увидеть список файлов:
git status | grep "modified:" | awk '{print "git add " }' > file.sh cat ./file.shвыполнить:
chmod a+x file.sh ./file.shEdit: (см. комментарии) Это может быть достигнуто в один шаг:
git status | grep modified | awk '{print }' | xargs git add && git status
Comments