Git의 파일에는 Lifecycle이 존재합니다. Unmodified를 Modified로 변경하려면 파일을 수정하면 되고, Modified를 Staged로 변경하려면 git add
하면 됩니다. 여기선 그 역방향으로 파일의 Lifecycle을 변경해 보도록 합시다.
Staged 파일을 Modified(Unstaged)로 변경하기
Working tree에서 Staging area(index)로 파일의 상태를 기록(staging)하기 위해 add를 사용했습니다. 현재 작업 트리의 상태를 보여주는 git status
를 사용하면, 아래와 같이 출력될 것입니다.
> git status
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
modified: Will_commit.txt
modified: Dont_commit.txt
git reset HEAD <file>...
이라는 문장을 볼 수 있습니다. 실제로 이 명령어를 이용해 파일을 Unstaged 상태로 변경할 수 있습니다. Dont_commit.txt
파일을 Unstaged 상태로 변경해 보겠습니다.
$ git reset HEAD Dont_commit.txt
Unstaged changes after reset:
M Dont_commit.txt
$
$ git status
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
modified: Will_commit.txt
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: Dont_commit.txt
Modified 파일을 Unmodified로 변경하기
수정된 파일을 수정 전으로 되돌릴 수도 있습니다. 여기서도 git status
명령이 친절하게 알려줍니다.
$ git status
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: Dont_modify.txt
git checkout -- <file>...
을 사용하라고 합니다. 알려주는 대로 한 번 해 봅시다.
$ git checkout -- Dont_modify.txt
$ git status
nothing to commit (create/copy files and use "git add" to track)
수정 전으로 돌아갔습니다. 그러나 수정했던 내용은 전부 사라지므로, 조심해서 사용해야 합니다.
'Git 레거시 글' 카테고리의 다른 글
[Git] 커밋 되돌리기 (0) | 2018.05.28 |
---|---|
[Git] 다시 커밋하기 (0) | 2018.05.27 |
[Git] 브랜칭 기법 (0) | 2018.05.25 |
[Git] 브랜치와 Merge (0) | 2018.05.24 |
[Git] Pull에서 충돌 해결하기 (1) | 2018.05.23 |