내 자식 저장소에 파일이 있다고 가정 해보십시오. foo
.
rm
(not git rm
) 으로 삭제되었다고 가정하십시오 . 그런 다음 자식 상태가 표시됩니다.
Changes not staged for commit:
deleted: foo
이 개별 파일 삭제를 어떻게 준비합니까?
내가 시도하면 :
git add foo
그것은 말한다 :
'foo' did not match any files.
내 자식 저장소에 파일이 있다고 가정 해보십시오. foo
.
rm
(not git rm
) 으로 삭제되었다고 가정하십시오 . 그런 다음 자식 상태가 표시됩니다.
Changes not staged for commit:
deleted: foo
이 개별 파일 삭제를 어떻게 준비합니까?
내가 시도하면 :
git add foo
그것은 말한다 :
'foo' did not match any files.
답변:
Git 2.0.0부터는 git add
파일 삭제도 준비됩니다.
<경로 사양>…
컨텐츠를 추가 할 파일입니다. 일치하는 모든 파일을 추가하기 위해 Fileglobs (예 : * .c)를 지정할 수 있습니다. 또한 디렉토리의 현재 상태와 일치하도록 색인을 업데이트하기 위해 디렉토리 이름 (예 : dir / file1 및 dir / file2를 추가하는 dir)을 지정할 수 있습니다 (예 : dir을 지정하면 수정 된 파일 dir / file1이 아니라 작업 트리에서 작업 트리에 추가 된 파일 dir / file2와 작업 트리에서 제거 된 파일 dir / file3 파일 이전 버전의 Git은 제거 된 파일을 무시하는 데 사용되었으므로 --no-all 옵션을 사용하십시오. 수정되거나 새로운 파일을 추가하고 싶지만 제거 된 파일은 무시합니다.
사용하다 git rm foo
삭제를 위해 파일을 준비하는 데 합니다. (이것은 이전에 삭제되지 않은 경우 파일 시스템에서 파일을 삭제합니다. 물론 이전에 체크인했기 때문에 git에서 복원 할 수 있습니다.)
파일 시스템에서 파일을 삭제하지 않고 삭제를 위해 파일을 준비하려면 git rm --cached foo
--cache
저장소에서만 파일을 제거하고 파일 시스템에 손대지 않고 플래그를 추가 할 수 있습니다 .
git status | grep 'deleted:' | cut -d':' -f2 | xargs -t -I {} git add -u "{}"
. 다른 답변은 파일 제거를 올바르게 준비하는 방법을 보여 주지만 이미 삭제 된 파일을 준비하는 방법은 아닙니다. 추신. xargs
기반의 명령은 내가 직접 할 그러나 때, 우분투 12.04에 나를 위해 작동 git add -u deleted_file.txt
작업 넣은 사람은 아니다 그것을. 내 자식은 1.7.9.5입니다
git rm
파일 시스템에서 이미 삭제 된 파일이라도 행복하게 파일을 삭제합니다. 그리고 다른 답변에 대한 OP의 의견에서 알 수 있듯이 이미 삭제 된 특정 파일 하나를 준비하려고했습니다.
git rm
이미 제거 된 파일을 준비하지 않습니다. 이 오류가 발생 fatal: pathspec '~.SLDASM' did not match any files
합니다. 증거가있는 화면은 다음과 같습니다. i.imgur.com/cKNKGGe.png i.imgur.com/1p9JdWF.png . 첫 번째 스크린 샷은 2 개의 파일이 삭제되어 준비되지 않았 음을 보여주고, 두 번째 스크린 샷은 입력 git rm "~$Box.SLDASM"
할 때이 오류가 발생 한다는 것을 보여줍니다 .
을 사용하는 것이 맞더라도 git rm [FILE]
, 또는 할 수 있습니다git add -u
.
git-add
설명서 에 따르면 :
-u-업데이트
[FILE]과 (와) 일치하는 항목이 이미있는 색인을 업데이트하십시오. 이렇게하면 작업 트리와 일치하도록 색인 항목이 제거 될뿐만 아니라 수정되지만 새 파일은 추가되지 않습니다.
-u 옵션을 사용할 때 [FILE]을 지정하지 않으면 전체 작업 트리에서 추적 된 모든 파일이 업데이트됩니다 (이전 버전의 Git은 업데이트를 현재 디렉토리 및 하위 디렉토리로 제한하는 데 사용됨).
인덱스가 새로 고쳐지고 파일이 올바르게 준비됩니다.
git add -A .
, 모든 변경 사항을 추가합니다. 특히 삭제 된 파일 하나를 준비하고 싶었습니다.
git add -u FolderWithDeletedFiles/
그리고 내가 감사를 원하는 한
수동으로 삭제 된 모든 파일을 준비하려면 다음을 사용할 수 있습니다.
git rm $(git ls-files --deleted)
이 명령에 별명을 추가하려면 git rm-deleted
다음을 실행하십시오.
git config --global alias.rm-deleted '!git rm $(git ls-files --deleted)'
unknown option `deleted)
for /F %I in ('git ls-files --deleted') do git add -u %I
준비된 삭제 된 파일을 모두 추가하려면
git status -s | grep -E '^ D' | cut -d ' ' -f3 | xargs git add --all
확인 감사합니다
git status
당신은 잘 가야합니다
rm <file>
이 아니라git rm <file>
git version 2.15.2 (Apple Git-101.1)
.
이 명령을 사용할 수 있습니다
git add `git ls-files --deleted`