[깃허브(Github)] 12. 파일 삭제하기

Github 사용법 2016. 8. 9. 22:50

728x90
반응형


사이트에는 이렇게 적혀져 있습니다.

Git에서 파일을 제거하려면 git rm 명령으로 Tracked 상태의 파일을 삭제한 후에(정확하게는 Staging Area에서 삭제하는 것) 커밋해야 합니다. 이 명령은 워킹 디렉터리에 있는 파일도 삭제하기 때문에 살제로 파일도 지워진다.







1. 현재 폴더 구성을 보겠습니다.







2. 현재 깃으로 현재  test02폴더의 파일들의 상태를 체크해 보겠습니다.

index.html, style.css : 현재 Staged 상태를 입니다.

main.js : 현재 수정중 입니다.

log.txt : 관리대상파일이 아닙니다.







3. 그러면 style.css를 폴더에서 휴지통으로 옮기고 휴지통 비우기로 완전 삭제하겠습니다.

그리고 나서 git status 명령어로 어떤 명령어가 내용이 출력되는지 확인하였습니다.







4. git rm style.css명령으로 이 파일을 Staging Area에서 삭제해 보겠습니다.

rm 'style.css' 라는 문구를 출력하는군요.








5. git status 로 현재 상태를 체크해 봤습니다.

그랬더니  deleted:    style.css  부분이 초록색으로 나오네요.

이 상태는 Staged 상태가 됩니다.

이 상태에서 두번째로 커밋을 하면 git은 더이상 이 style.css를 더이상 추적하지 않습니다.








6. 그러면 이번엔 main.js가 Modified 상태인데 git  add 명령으로 Staging Area에 추가하지말고 git rm 명령을 사용하면 어떻게 될까 해서 한번 진행해 봤습니다.

폴더에서 직접 휴지통으로 옮긴게 아니라 그냥 깃 명령어를 날려봤습니다.

그랬더니 이런 문구를 출력합니다.

error: the following file has local modifications:

    main.js

(use --cached to keep the file, or -f to force removal)

이미 파일을 수정했거나, 수정한 파일을 Index(Staging Area을 Git Index라고도 부름)에 추가했다면 -f 옵션을 주어 강제로 삭제해야 한다고 합니다.

이 부분은 실수로 데이터를 삭제하지 못하도록 하는 안전장치 라고 하네요.







7. 그래서 -f 옵션을 붙혀서 삭제해 봤습니다.

-f 옵션은 이렇게 붙혀서 씁니다.

git rm -f 파일이름

그리고 상태를 확인해 봤습니다.

그랬더니 제대로 main.js가 Staged 상태가 된게 보입니다.








8. 이렇게 폴더를 확인해 봤습니다.

파일을 휴지통에 넣고 버린 style.css도 Git명령을 통해 삭제한 main.js도 더이상 보이지 않습니다. 저는 일단 지금의 상태를 커밋해 두겠습니다.








9. 이러한 명령어 말고도 .gitignore 에 관리하지 않을 파일로 등록을 못시켰을 경우 git rm --cached 파일이름 등으로 실제로 파일을 삭제하진 않고 Git의 추적을 피할 수 있다고 합니다.

또 여러개의 파일이나 디렉터리를 한꺼번에 삭제하는 명령도 있습니다. git rm 폴더이름/\*.log 이 명령은 폴더이름이란 폴더의 모든 .log 라는 파일을 삭제합니다.

반응형