'cached'에 해당하는 글 1건

git add

Tool/Git 2013. 3. 21. 00:10

3. add 후의 status

 

$ git add file1.txt
$ git branch
$ git status
# On branch master
#
# Initial commit
#
# Changes to be committed:
#   (use "git rm --cached <file>..." to unstage)
#
#       new file:   file1.txt
#

 

Working directory -> Staging area -> HEAD 로 가는 세가지 단계에서 위의 file1.txt 파일은,
add 이전은 Working directory,
add 이후는 Staging area에 놓이게 됩니다.
Staging area에 놓인 작업물들은 commit시에 HEAD로 전달됩니다.
commit 시에 전달되서는 안되는 작업물이 Staging area에 포함되어 있다면
git rm --cached <file>... 명령으로 unstage 상태로 되돌릴 수 있습니다.

 

$ git rm --cached file1.txt
rm 'file1.txt'

 

 

만약 add 명령으로 Staging area에 놓인 파일을 git이 알 수 없는 일반 rm 명령으로 삭제 시켜버렸다면 commit시에 에러가 발생할 것입니다. Staging area에서 commit 대기하던 작업물이 사라졌으니까요.
그 상황을 만나게 된다면 우리는 삭제된 파일을 살리던지(checkout), Staging area에서도 삭제를 시키던지 해야 합니다.

 

$ git add file1.txt
$ rm file1.txt
$ git status
# On branch master
#
# Initial commit
#
# Changes to be committed:
#   (use "git rm --cached <file>..." to unstage)
#
#       new file:   file1.txt
#
# Changes not staged for commit:
#   (use "git add/rm <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#       deleted:    file1.txt
#

 

status를 보자면 add 명령으로 인해 file1.txt 파일이 commit 대기 중입니다.
그런데 git이 알 수 없는 rm 명령으로 file1.txt 파일이 삭제가 되었기 때문에 작업을 계속 하려면,
git이 인식할 수 있도록 죽이던지 살리던지 해야 합니다.
$ git rm --cached file1.txt
명령으로 file1.txt 파일을 Staging area 에서 삭제 시키던지,
$ git checkout -- file1.txt
명령으로 제거된 file1.txt 파일을 복구할 수 있습니다.


WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

,