취소 - git untracked files add




git은 수정 된 변경 사항 만 추가하고 추적되지 않은 파일은 무시합니다. (4)

나는 파일의 목록을 먼저 볼 수 있도록 이것을 시도했다.

git status | grep "modified:" | awk '{print "git add  " $2}' > file.sh

cat ./file.sh

실행 :

chmod a+x file.sh
./file.sh 

편집 : (의견보기) 이것은 한 단계에서 달성 될 수 있습니다 :

git status | grep modified | awk '{print $2}' | xargs git add && git status

"git status"를 실행했고 아래에 나열된 일부 파일이 수정되었거나 "커밋을 위해 준비되지 않은 변경 사항"이라는 제목 아래에 나열되어 있습니다. 그것은 또한 무시하고 싶지 않은 몇 가지 untracked 파일들을 나열했다. (나는이 디렉토리들에 ".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")

이것은 나를 위해 일했다 :

#!/bin/bash

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

또는 더 나은 :

$ git ls-files --modified | xargs git add

이상적으로 .gitignore 는 untracked (및 무시 된) 파일이 상태에 표시되지 않도록하고, git add 등을 사용하여 git add . 따라서 .gitignore 를 수정하도록 요청할 것입니다 .gitignore

git add -u 하여 수정 및 삭제 된 파일을 스테이지 할 수 있습니다.

git commit -a 를 사용하여 수정 및 삭제 된 파일 만 git commit -a 할 수도 있습니다.

버전 2.0 이전의 Git을 사용하고 git add . 사용했다면주의 git add . , 그러면 git add -u . 를 사용해야 할 것이다 git add -u . ( " git add -A "와 " git add . "의 차이점 참조).


현재 .gitignore 무엇인지 말하지 않았지만 .gitignore 는 루트 디렉토리에 다음 내용이있는 트릭을 수행해야합니다.

.metadata
build




staging