파일을 삭제하는 경우에 대해서 알아보자.
파일을 삭제하는 경우를 테스트 해보기 위해서 미리 삭제용 파일 3개를 넣어놓았다. ^^
1. rm
$ rm rm_test.txt $ git add rm_test.txt $ git commit -m "rm rm_test.txt" |
git 으로 관리를 하던 파일을 그냥 삭제를 하게 되면 git 은 어떻게 받아들일까?
위 스크린샷을 보면 알겠지만, 그냥 알아서 변화된 사항을 잘 받아들인다.
그러므로, 그냥 'git add' 후 'git commit'을 해주면 된다.
위에서는 'add + commit = commit -a" 으로 처리를 했다 ^^
2. git rm
$ git rm rm_test2.txt $ git commit -m "rm rm_test2.txt" |
git 에서는 삭제를 위한 옵션을 제공을 해준다.
이를 이용하면 삭제와 staging을 한 번에 처리를 할 수가 있다.
이를 상태 그래프로 보면 아래와 같다.
즉, [ rm + add = git rm ] 이다.
3. git rm --cached
$ git rm --cached rm_test3.txt $ git commit -m "rm --cached rm_test3.txt" |
이번에는 조금 특수한 경우이다.
Git 에서는 지우고 싶은데, 지금 작업할 때에는 남겨두고 싶은 경우이다.
즉, 지금 당장 파일은 지우기 싫은데, git 에서는 삭제를 해놓고 싶은 경우에 이렇게 하면 된다.
위 스크린샷을 보면, git rm을 했음에도 실제 파일은 삭제가 되지 않았고,
그러다 보니 git 에서는 untracked 파일이 존재하고 있다고 인지하고 있게 된다.
4. Pattern
쉘 상에서 rm을 사용할 때와 마찬가지로 'git rm'에서도 glob 패턴 등을 그대로 사용할 수 있다.
다만, "*"를 사용할 때에 조금 조심해야 한다.
$ git rm \*~ $ git rm ./out/\*.o |
위와 같이 "*" 앞에는 백슬레쉬를 붙여주어야 한다.
이는 백슬레쉬 없이 그냥 "*"를 사용할 경우 Git이 다른 식으로 인식을 하기에 조금 주의를 해야한다.
반응형
'SCM > Git-GitHub' 카테고리의 다른 글
Move file - git mv (0) | 2012.02.13 |
---|---|
Upgrade GIt (in Ubuntu) (0) | 2012.02.13 |
Git Remote Repository (git init --bare) (0) | 2012.02.11 |
Undo - Unmodify (변경 취소 - git checkout --) (0) | 2012.02.08 |
Undo - Unstaging (등록 취소 - git reset HEAD) (0) | 2012.02.07 |