삭제된 파일 준비 중
Git 저장소에 다음과 같은 파일이 있다고 가정합니다.foo
.
다음과 함께 삭제되었다고 가정합니다.rm
(아닙니다.git rm
). Git 상태는 다음과 같이 표시됩니다.
Changes not staged for commit:
deleted: foo
이 개별 파일 삭제를 준비하려면 어떻게 해야 합니까?
내가 시도하는 경우:
git add foo
다음과 같이 표시됩니다.
'foo' did not match any files.
업데이트 (9년 후, lol):
git 2.x에서 수정된 것처럼 보입니다.
$ git --version
git version 2.25.1
$ mkdir repo
$ cd repo
$ git init .
Initialized empty Git repository in repo/.git/
$ touch foo bar baz
$ git add foo bar baz
$ git commit -m "initial commit"
[master (root-commit) 79c736b] initial commit
3 files changed, 0 insertions(+), 0 deletions(-)
create mode 100644 bar
create mode 100644 baz
create mode 100644 foo
$ rm foo
$ git status
On branch master
Changes not staged for commit:
deleted: foo
$ git add foo
$ git status
On branch master
Changes to be committed:
deleted: foo
사용하다git rm foo
삭제할 파일을 준비합니다.이전에 파일을 삭제하지 않았다면 파일 시스템에서도 파일이 삭제됩니다.물론 이전에 체크인했기 때문에 git에서 복원할 수 있습니다.)
파일 시스템에서 파일을 삭제하지 않고 삭제할 준비를 하려면 다음을 사용합니다.git rm --cached foo
사용하는 것이 올바르더라도git rm [FILE]
대신에, 당신은 할 수 있습니다.git add -u
.
에 따르면git-add
설명서:
-u --update
[FILE]과(와) 일치하는 항목이 이미 있는 곳에서 인덱스를 업데이트합니다.이렇게 하면 작업 트리와 일치하도록 인덱스 항목이 제거되고 수정되지만 새 파일은 추가되지 않습니다.
-u 옵션을 사용할 때 [FILE]이 제공되지 않으면 전체 작업 트리의 모든 추적된 파일이 업데이트됩니다(현재 디렉터리와 하위 디렉터리로 업데이트를 제한하는 데 사용된 Git의 이전 버전).
인덱스가 새로 고쳐지고 파일이 올바르게 준비됩니다.
수동으로 삭제한 모든 파일을 준비하려면 다음을 사용합니다.
git rm $(git ls-files --deleted)
이 명령에 별칭을 추가하려면 다음과 같이 하십시오.git rm-deleted
실행:
git config --global alias.rm-deleted '!git rm $(git ls-files --deleted)'
Git 2.0.0 이후로git add
파일 삭제도 준비합니다.
< 경로 사양 >…
콘텐츠를 추가할 파일입니다.파일 글러브(*.c 등)를 지정하여 일치하는 모든 파일을 추가할 수 있습니다.또한 디렉터리의 현재 상태와 전체적으로 일치하도록 인덱스를 업데이트하기 위해 선행 디렉터리 이름(예: dir/file1 및 dir/file2를 추가하는 dir)을 지정할 수 있습니다(예: dir를 지정하면 작업 트리에서 수정된 파일 dir/file1, 작업 트리에 추가된 파일 dir/file2뿐만 아니라 작업 트리에서 제거된 파일 dir/file3도 기록됩니다).이전 버전의 Git는 제거된 파일을 무시하곤 했습니다. 수정된 파일이나 새 파일을 추가하고 제거된 파일은 무시하려면 --no-all 옵션을 사용하십시오.
준비된 삭제된 모든 파일 추가
git status -s | grep -E '^ D' | cut -d ' ' -f3 | xargs git add --all
확인해 주셔서 감사합니다.
git status
당신은 가도 좋습니다.
이 명령을 사용할 수 있습니다.
git add `git ls-files --deleted`
설명:
git ls-files --deleted
이 명령은 삭제된 모든 파일의 파일 이름을 반환합니다.
사용할 수 있습니다.
git rm -r --cached -- "path/to/directory"
삭제된 디렉토리를 준비합니다.
을 모두 .git add .
이것이 깃을 가진 지금의 가장 쉬운 방법입니다.v2.27.0
로 참: 사를 사용합니다.*
그리고..
서로 다른 접근 방식입니다.용사를 합니다.git add *
, 현존파추가반는면하일만재는재하▁currently.git add .
을 또한삭 준비합다니로 .rm
지휘권
사용할 때 수정된 다른 파일도 준비 영역에 추가된다는 것은 분명하지만 언급할 가치가 있습니다.git add .
.
파워셸에서 git 2.x+를 사용하는 경우:
foreach ($filePath in (git ls-files --deleted)) { git add "$filePath" }
Ian Mackinnon은 답을 찾았지만 잔말이 더 좋습니다.
git ls-files --deleted -z | xargs -r0 git rm
깃 별칭:
git config --global alias.rm-deleted '!git ls-files --deleted -z | xargs -r0 git rm'
NUL 가와 실행 안 함을 사용합니다.git rm
파일 목록이 비어 있는 경우.
이 구문은 물고기와 호환됩니다.
언급URL : https://stackoverflow.com/questions/12373733/staging-deleted-files
'programing' 카테고리의 다른 글
ASP에서 이메일을 보내는 방법.NET C# (0) | 2023.05.10 |
---|---|
이 인증서에는 잘못된 발급자 Apple Push Services가 있습니다. (0) | 2023.05.10 |
의 Generics 사용 예.네트(C#/VB).NET) (0) | 2023.05.10 |
val()은 jQuery에서 변경()을 트리거하지 않습니다. (0) | 2023.05.10 |
AutoReconnect 예외 "마스터가 변경되었습니다" (0) | 2023.05.10 |