추적되지 않은 파일 만 추가
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
추적 할 수없는 수천 개의 파일이 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
'Programming' 카테고리의 다른 글
Node.js 고유의 Promise.all 처리가 병렬 또는 순차적입니까? (0) | 2020.06.15 |
---|---|
'C'에서 색인이 0으로 시작되는 이유는 무엇입니까? (0) | 2020.06.15 |
문자열에서 큰 따옴표를 이스케이프 처리 (0) | 2020.06.15 |
"빈 값 또는 null 값"을 확인하는 가장 좋은 방법 (0) | 2020.06.15 |
안드로이드 충돌 로그를 얻는 방법? (0) | 2020.06.15 |