Git 리포지토리에서 파일 제거 방법 (로컬 파일 시스템 유지)
방법 1: git rm --cached
사용
git rm --cached <파일 이름>
명령을 사용합니다.- 예:
git rm --cached readme.txt
- 예:
- 이 명령은 다음과 같은 작업을 수행합니다.
- 해당 파일을 추적 목록에서 제거합니다. 즉, 다음 커밋에 포함되지 않습니다.
- 로컬 파일 시스템의 파일은 그대로 유지됩니다.
- 변경 사항을 커밋해야 합니다.
방법 2: git add
제외 사용
.gitignore
파일에 제거하려는 파일을 추가합니다..gitignore
파일은 Git이 추적하지 않도록 지정하는 파일 목록입니다.
- 이 명령은 다음과 같은 작업을 수행합니다.
.gitignore
파일에 지정된 파일은 추적 목록에서 제거됩니다.
주의 사항:
- 위 두 방법 모두 로컬 파일 시스템에서만 파일을 제거합니다.
- 원격 저장소에서 해당 파일을 제거하려면
git push
명령을 사용해야 합니다. git reset
또는git checkout
명령을 사용하면 로컬 파일 시스템에서 해당 파일이 복구될 수 있습니다.
예제 코드
# readme.txt 파일을 추적 목록에서 제거하고 로컬 파일 시스템에 유지합니다.
git rm --cached readme.txt
# 변경 사항을 커밋합니다.
git commit -m "readme.txt 파일 제거"
# .gitignore 파일에 readme.txt 파일을 추가합니다.
echo readme.txt > .gitignore
# 변경 사항을 커밋합니다.
git commit -m ".gitignore 파일에 readme.txt 추가"
설명:
- 첫 번째 코드 블록에서는
git rm --cached
명령을 사용하여readme.txt
파일을 Git의 추적 목록에서 제거합니다. 이 명령은 로컬 파일 시스템의 파일을 삭제하지 않고 추적 상태만 변경합니다. - 두 번째 코드 블록에서는
.gitignore
파일에readme.txt
를 추가하여 Git이 해당 파일을 추적하지 않도록 합니다. 이후 커밋하면.gitignore
파일에 지정된 파일이 추적 목록에서 제거됩니다.
주의:
- 위 예제는
readme.txt
파일을 예시로 사용합니다. 실제로 사용할 때는 제거하려는 파일 이름으로 변경해야 합니다. git push
명령을 사용하여 원격 저장소에서 해당 파일을 제거해야 합니다.
git checkout -- <파일 이름>
명령을 사용하여 임시 작업 영역에 파일의 복사본을 만듭니다.- 예:
git checkout -- readme.txt
- 예:
- 원하는 작업을 수행합니다. (예: 편집, 삭제 등)
- 임시 작업 영역의 변경 사항을 버립니다.
git checkout .
와 같은 명령을 사용합니다.
방법 4: 특수 파일 시스템 사용
- OS X 및 Linux:
sparsefile
또는afs
와 같은 특수 파일 시스템을 사용하여 로컬 디스크 공간을 절약하면서 Git에서 파일을 추적할 수 있습니다. - Windows: NTFS의
sparse
파일 속성을 사용하여 로컬 디스크 공간을 절약하면서 Git에서 파일을 추적할 수 있습니다.
- 이러한 방법들은 더 복잡하고 모든 플랫폼에서 사용할 수 있는 것은 아닙니다.
git repository remote-server