Programming

추적되지 않은 파일 만 추가

procodes 2020. 6. 15. 22:32
반응형

추적되지 않은 파일 만 추가


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

여기서 -zgit에게 \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


추적 할 수없는 수천 개의 파일이 git add -i있으면 추가하지 않아도 작동하지 않습니다 *. 오류 메시지가 나타납니다 Argument list too long.

그런 다음 Windows에도 있고 (# 2 :-묻지 않음) 추적되지 않은 모든 파일을 추가하기 위해 PowerShell을 사용해야하는 경우이 명령을 사용할 수 있습니다.

git ls-files -o --exclude-standard | select | foreach { git add $_ }

여기에 좋은 팁이 많이 있지만 Powershell 내부에서 작동시키지 못했습니다.

저는 .NET 개발자이며 .Net 코어 및 크로스 플랫폼을 많이 사용하지 않았기 때문에 주로 여전히 Windows OS를 사용하므로 Git에서 일상적으로 사용하는 것은 Windows 환경에서 사용되며 셸이 더 자주 사용됩니다. Git bash가 아닙니다.

추적되지 않은 파일을 Git 저장소에 추가하기위한 별명 함수를 작성하기 위해 다음 절차를 따를 수 있습니다.

Powershell의 $ profile 파일 내부 (없는 경우-다음을 실행할 수 있음 : New-Item $ Profile)

메모장 $ 프로필

이제이 Powershell 방법을 추가하십시오.

function AddUntracked-Git() {
 &git ls-files -o --exclude-standard | select | foreach { git add $_ }
}

$ profile 파일을 저장하고 Powershell에 다시로드하십시오. 그런 다음 $ profile 파일을 다음과 같이 다시로드하십시오. $ 프로필

이것은 * nix 환경 IMHO의 소스 명령과 유사합니다.

따라서 다음에 Git repo에 대해 Windows에서 Powershell을 사용하는 개발자이고 추적되지 않은 파일 만 포함하려는 경우 다음을 실행할 수 있습니다.

Untracked-Git 추가

이것은 동사 명사를 사용하는 Powershell 규칙을 따릅니다.


git add. (이 디렉토리의 모든 파일을 추가하십시오)

git add -all (모든 디렉토리에 모든 파일 추가)

git add -N은 나중에 어느 것을 나열하는 데 도움이 될 수 있습니다 ....


추적되지 않은 모든 파일을 추가하려면 git 명령이

자식 추가 -A

또한 사용 가능한 다양한 옵션에 대한 자세한 내용을 보려면 command를 입력하십시오.

자식 추가 -i

instead of first command , with this you will get more options including option to add all untracked files as shown below :

$ git add -i warning: LF will be replaced by CRLF in README.txt. The file will have its original line endings in your working directory. warning: LF will be replaced by CRLF in package.json.

* Commands * 1: status 2: update 3: revert 4: add untracked 5: patch 6: diff 7: quit 8: help What now> a

참고URL : https://stackoverflow.com/questions/7446640/adding-only-untracked-files

반응형