git yalnızca değiştirilen değişiklikleri ekler ve izlenmeyen dosyaları yok sayar

git status" komutunu çalıştırdım ve aşağıda "changes not staged for commit" başlığı altında değiştirilmiş/veya listelenmiş bazı dosyalar var. Ayrıca yok saymak istediğim bazı izlenmemiş dosyaları da listeledi (bu dizinlerde bir ".gitignore" dosyam var).

Değiştirilen dosyaları hazırlama aşamasına koymak istiyorum, böylece onları işleyebilirim. "git add ." komutunu çalıştırdığımda, değiştirilen dosyaları VE yok saymak istediğim dosyaları sahnelemeye ekledi.

Aşağıdaki git durumu ile sunulduğunda yalnızca değiştirilen dosyaları nasıl ekleyebilirim ve izlenmeyen dosyaları nasıl yok sayabilirim?

Ayrıca, ".gitignore" dosyalarım düzgün çalışıyor mu?

$ 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")
Çözüm

İdeal olarak .gitignore dosyanız takip edilmeyen (ve göz ardı edilen) dosyaların durumda gösterilmesini, git add kullanılarak eklenmesini vb. engellemelidir. Bu yüzden sizden .gitignore dosyanızı düzeltmenizi rica ediyorum

Değiştirilen ve silinen dosyaları sahnelemesi için git add -u yapabilirsiniz.

Sadece değiştirilen ve silinen dosyaları işlemek için git commit -a da yapabilirsiniz.

Git'in 2.0'dan önceki bir sürümüne sahipseniz ve git add . kullandıysanız, git add -u . kullanmanız gerektiğini unutmayın (Bkz. "Difference of "git add -A" and "git add ."").

Yorumlar (7)

Bu bende işe yaradı:

#!/bin/bash

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

Ya da daha iyisi:

$ git ls-files --modified | xargs git add
Yorumlar (7)

Şu anda .gitignore'unuzun ne olduğunu söylemediniz, ancak kök dizininizde aşağıdaki içeriğe sahip bir.gitignore' işinizi görecektir.

.metadata
build
Yorumlar (2)