git에서 삭제된 파일의 스테이징 해제
통상, 파일의 변경을 파기하려면 , 다음의 순서에 따릅니다.
git checkout -- <file>
취소하고 싶은 변경 내용이 파일을 삭제하는 경우 어떻게 해야 합니까?위의 행은 에러를 나타냅니다.
error: pathspec '<file>' did not match any file(s) known to git.
다른 변경을 취소하지 않고 단일 파일을 복원하는 명령어는 무엇입니까?
보너스 포인트:또한 삭제하고 싶은 변경이 파일 추가일 경우에는 어떻게 해야 합니까?저는 그 변경도 어떻게 풀어야 하는지 알고 싶습니다.
그 결과를 되돌리고 싶다고 가정해 보세요git rm <file>
또는rm <file>
이어서git add -A
또는 이와 유사한 것:
# this restores the file status in the index
git reset -- <file>
# then check out a copy from the index
git checkout -- <file>
되돌리다git add <file>
위의 첫 번째 행은 아직 커밋하지 않은 것으로 가정할 때 충분합니다.
양쪽 질문에 대한 답변은 다음과 같습니다.git status
.
새 파일 추가 작업을 해제하려면git rm --cached filename.ext
# Changes to be committed:
# (use "git rm --cached <file>..." to unstage)
#
# new file: test
파일 삭제를 해제하려면git reset HEAD filename.ext
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# deleted: test
다른 한편으로는git checkout --
디지타이징을 해제하지 않고 변경 내용을 폐기할 뿐입니다.
이 파일이 스테이징되어 커밋된 경우 다음과 같이 파일이 리셋됩니다.
git reset COMMIT_HASH file_path
git checkout COMMIT_HASH file_path
git add file_path
이것은 이전에 몇 번의 커밋이 발생한 삭제에 적용됩니다.
두 가지 질문에 대한 답변은 관련이 있습니다.두 번째부터 시작하겠습니다.
파일을 스테이징한 후 (대부분의 경우)git add
단, 일부 다른 명령어는 암묵적으로 변경을 스테이징합니다.git rm
)를 사용하여 이 변경을 취소할 수 있습니다.git reset -- <file>
.
당신의 경우, 당신은 다음을 사용하셔야 합니다.git rm
파일을 삭제하는 것은 단순히 파일을 삭제하는 것과 같습니다.rm
그 변화를 준비합니다.처음에 이걸 풀면git reset -- <file>
그런 다음 를 사용하여 복구할 수 있습니다.git checkout -- <file>
.
git v2.23부터는 다른 옵션이 있습니다.
git restore --staged -- <file>
저는 위의 해결책을 시도했지만 여전히 어려움을 겪고 있었습니다.실수로 삭제된 두 개의 파일로 다른 파일을 준비했습니다.
삭제된 2개의 파일을 원래대로 되돌리려면 모든 파일을 분리해야 했습니다.
git reset HEAD .
그 시점에서 삭제된 아이템을 체크 아웃 할 수 있었습니다.
git checkout -- WorkingFolder/FileName.ext
마침내 나머지 파일을 다시 저장하고 약속을 계속할 수 있었습니다.
매뉴얼 페이지에서
git-reset - Reset current HEAD to the specified state
git reset [-q] [<tree-ish>] [--] <paths>...
In the first and second form, copy entries from <tree-ish> to the index.
예를 들어, 우리가git reset HEAD~1
현재 HEAD를 HEAD로 리셋~1
그래서 사용할 때git reset 'some-deleted-file-path'
git은 'some-deleted-file-path'를 커밋 포인트로 가정하고 현재 HEAD를 리셋합니다.
그리고 그것은 결국 실패한다.
fatal: ambiguous argument 'some-deleted-file-path': unknown revision or path not in the working tree.
언급URL : https://stackoverflow.com/questions/9591407/unstage-a-deleted-file-in-git
'programing' 카테고리의 다른 글
"find" 명령어 결과를 Bash에 배열로 저장하려면 어떻게 해야 합니다. (0) | 2023.04.22 |
---|---|
셸 스크립트에서 디렉토리 내의 파일 목록을 가져오려면 어떻게 해야 합니까? (0) | 2023.04.17 |
스타일을 통해 이벤트 기능을 설정하려면 어떻게 해야 합니까? (0) | 2023.04.17 |
유닉스 명령어 "watch"를 사용한 색상 (0) | 2023.04.17 |
"find: paths must preference expression:" 현재 디렉토리에서 파일을 찾는 재귀 검색을 지정하려면 어떻게 해야 합니까? (0) | 2023.04.17 |