[git] 추적되지 않은 파일 만 추가
Git에서 엄청나게 유용한 명령 중 하나는 git add -u
추적되지 않은 파일을 제외한 모든 것을 인덱스에 넣는 것입니다. 그 반대가 있습니까? 지난 몇 달 동안, 나는 대화식으로 색인에 몇 가지 업데이트를 추가 한 위치에서 종종 자신을 발견했으며 커밋하기 전에 추적되지 않은 모든 파일을 해당 색인에 추가하려고합니다.
추적되지 않은 파일 만 색인에 개별적으로 식별하지 않고 추가 할 수있는 방법이 있습니까? 도움말 문서에 분명한 내용이 없지만 누락 된 것 같습니다.
감사.
답변
로 쉽습니다 git add -i
. a
“”추적되지 않은 추가 “에 대해 입력 한 다음 *
“모두 “에 대한 입력q
(종료하기) 당신이 완료됩니다.
단일 명령으로 수행하려면 echo -e "a\n*\nq\n"|git add -i
답변
git ls-files -o --exclude-standard
추적되지 않은 파일을 제공하므로 아래와 같은 작업을 수행하거나 별칭을 추가 할 수 있습니다.
git add $(git ls-files -o --exclude-standard)
답변
정확히 당신이 찾고있는 것이 아니지만, 나는 이것이 매우 도움이된다는 것을 알았습니다.
git add -AN
모든 파일을 색인에 추가하지만 내용은 추가하지 않습니다. 추적 해제 된 파일은 이제 추적 된 것처럼 동작합니다. 내용이에 표시 git diff
되고을 (를) 사용하여 대화식으로 추가 할 수 있습니다 git add -p
.
답변
~ / .gitconfig 파일에 이것을 추가 할 수 있습니다 :
[alias]
add-untracked = !"git status --porcelain | awk '/\\?\\?/{ print $2 }' | xargs git add"
그런 다음 명령 행에서 다음을 실행하십시오.
git add-untracked
답변
사람들의 출력 파이프 제안 git ls-files
에를 git add
하지만,이 같은 공백 또는 글로브 문자가 포함 된 파일 이름이있는 경우 실패 할 것입니다 *
.
안전한 방법은 다음을 사용하는 것입니다.
git ls-files -o --exclude-standard -z | xargs -0 git add
여기서 -z
git에게 \0
줄 종결 자를 사용하도록 -0
지시하고 xargs에게 동일하게 지시합니다. 이 방법의 유일한 단점은 -0
옵션이 비표준이므로 일부 버전 만 xargs
지원한다는 것입니다.
답변
git ls-files
현재 디렉토리의 파일을 나열합니다. 트리의 어느 곳에서나 추적되지 않은 파일을 나열하려면이 방법이 더 좋습니다.
git ls-files -o --exclude-standard $(git rev-parse --show-toplevel)
트리에 추적되지 않은 모든 파일을 추가하려면
git ls-files -o --exclude-standard $(git rev-parse --show-toplevel) | xargs git add
답변
나는 이것을 시도하고 효과가 있었다 :
git stash && git add . && git stash pop
git stash
모든 수정 된 추적 파일 만 별도의 스택에 넣은 다음 남은 파일은 추적되지 않은 파일입니다. 그런 다음 git add .
필요에 따라 모든 파일을 추적되지 않은 파일로 준비합니다. 결국, 수정하여 모든 수정 된 파일을 스택에서 다시 가져옵니다.git stash pop