힘내 : “추적되지 않은”파일 만 나열 (사용자 정의 명령) 같은 명령을 사용하는

git ls-files추적되지 않은 파일 만 표시 하는 것과 같은 명령을 사용하는 방법이 있습니까?

내가 묻는 이유는 다음 명령을 사용하여 삭제 된 모든 파일을 처리하기 때문입니다.

git ls-files -d | xargs git rm

추적되지 않은 파일과 비슷한 것을 원합니다.

git some-command --some-options | xargs git add

에 대한 -o옵션 을 찾을 수 git ls-files있었지만 무시 된 파일도 표시하기 때문에 원하는 것이 아닙니다. 또한 다음과 같이 길고 못생긴 명령을 내릴 수있었습니다.

git status --porcelain | grep '^??' | cut -c4- | xargs git add

여기서 사용할 수있는 더 나은 명령이 있어야합니다. 그렇지 않은 경우 사용자 정의 git 명령을 어떻게 만듭니 까?



답변

추적되지 않은 파일을 나열하려면 다음을 시도하십시오.

git ls-files --others --exclude-standard

출력을로 파이프 해야하는 경우 and를 xargs사용하여 공백을 생각하는 것이 좋습니다 .git ls-files -zxargs -0

git ls-files -z -o --exclude-standard | xargs -0 git add

추적되지 않은 파일을 추가하기위한 유용한 별칭 :

au = !git add $(git ls-files -o --exclude-standard)

편집 : 참조 : git-ls-files


답변

추적되지 않은 파일 만 제거하려면 다음을 수행하십시오.

git clean -df

x특별히 무시 된 파일도 포함하려면 추가 하십시오. 나는 하루 종일 많이 사용 git clean -dfx합니다 .

라는 스크립트를 작성하고 git-whatever경로에 넣으면 커스텀 자식을 만들 수 있습니다 .


답변

git add -A -n당신이 원하는 것을 할 것입니다. -A의 REPO 모든 비 추적 파일을 추가 -n하게 그것을 dry-run추가가 수행되지 않고 상태 출력은 각각의 파일 목록 주어진다 것이 추가되었다합니다.


답변

허용되는 답변은 공간이있는 파일 이름에서 충돌합니다. 이 시점에서 alias 명령을 업데이트하는 방법을 잘 모르겠으므로 개선 된 버전을 여기에 넣으십시오.

git ls-files -z -o --exclude-standard | xargs -0 git add


답변

모든 것이 매우 간단합니다

추적되지 않은 모든 파일의 목록을 얻으려면 -u 옵션 (–untracked-files) 과 함께 git status 명령을 사용 하십시오.

git status -u


답변

추가 할 파일을 찾을 때. 의 결과 git show는 그렇게하지만 많은 다른 것들도 포함합니다. 다음 명령은 동일한 파일 목록을 가져 오지만 다른 항목은 모두없는 경우에 유용합니다.

 git status --porcelain | grep "^?? " | sed -e 's/^[?]* //'

파이프 라인에서 결합하여 특정 패턴과 일치하는 파일을 찾은 다음이를 파이핑 할 때 유용합니다 git add.

git status --porcelain | grep "^?? "  | sed -e 's/^[?]* //' | \
egrep "\.project$|\.settings$\.classfile$" | xargs -n1 git add


답변

나는 오래된 질문을 알고 있지만 추적되지 않은 파일을 나열하는 관점에서 추적되지 않은 폴더를 나열하는 다른 파일을 추가 할 것이라고 생각했습니다.

git clean 작업을 -n (dry run)과 함께 사용하여 다음을 통해 제거 할 파일 (.gitignore 파일 포함)을 표시 할 수 있습니다.

git clean -xdn

이것은 추적되지 않은 모든 파일모든 폴더 를 표시하는 이점이 있습니다 . 매개 변수 :

  • x -추적되지 않은 모든 파일을 표시합니다 (git과 다른 사람들이 무시한 것을 포함하여 빌드 출력 등)
  • d -추적되지 않은 디렉토리 표시
  • n그리고 가장 중요한 것은! -드라 이런, 즉 실제로 아무것도 삭제하지 말고 깨끗한 메커니즘을 사용하여 결과를 표시하십시오.

를 잊어 버렸을 때와 같이하는 것이 안전하지 않을 수 있습니다 -n. 그래서 나는 보통 git config에서 별칭을 지정합니다.