728x90
반응형
질문 : Git에서 파일을 언 스테이징하는 두 가지 방법이있는 이유는 무엇입니까?
때때로 git은 git rm --cached
가 파일을 언 스테이징하도록 git reset HEAD file
을 제안합니다. 어떤 것을 사용해야합니까?
편집하다:
D:\code\gt2>git init
Initialized empty Git repository in D:/code/gt2/.git/
D:\code\gt2>touch a
D:\code\gt2>git status
# On branch master
#
# Initial commit
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# a
nothing added to commit but untracked files present (use "git add" to track)
D:\code\gt2>git add a
D:\code\gt2>git status
# On branch master
#
# Initial commit
#
# Changes to be committed:
# (use "git rm --cached <file>..." to unstage)
#
# new file: a
#
D:\code\gt2>git commit -m a
[master (root-commit) c271e05] a
0 files changed, 0 insertions(+), 0 deletions(-)
create mode 100644 a
D:\code\gt2>touch b
D:\code\gt2>git status
# On branch master
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# b
nothing added to commit but untracked files present (use "git add" to track)
D:\code\gt2>git add b
D:\code\gt2>git status
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# new file: b
#
답변
git rm --cached <filePath>
는 파일의 스테이징을 해제하지 않고 실제로 저장소에서 파일을 제거하는 단계 (이전에 이미 커밋되었다고 가정)하지만 파일을 작업 트리에 남겨 둡니다 (추적되지 않은 파일).
git reset- git reset -- <filePath>
는 주어진 파일에 대한 단계적 변경을 해제합니다.
즉, git rm --cached
를 사용했다면 기본적으로 이전에 커밋 된 적이 없기 때문에 스테이징을 해제 한 것처럼 보일 것입니다.
Git 2.24 업데이트
이 최신 버전의 git에서는 git reset
git restore --staged
를 사용할 수 있습니다. git docs를 참조하십시오.
출처 : https://stackoverflow.com/questions/6919121/why-are-there-two-ways-to-unstage-a-file-in-git
728x90
반응형
'개발관련 > Git' 카테고리의 다른 글
Git에서 한 파일의 작업 복사본 수정을 취소하는 방법 (0) | 2021.12.05 |
---|---|
git clone --mirror와 git clone --bare의 차이점 (0) | 2021.12.05 |
GitHub에서 커밋을 제거하는 방법 (0) | 2021.12.04 |
git cherry-pick을 중단 하는 방법 (0) | 2021.12.04 |
주어진 커밋을 포함하는 분기를 나열하는 방법 (0) | 2021.12.04 |