[Git] .gitignore 사용법 및 중간에 적용하기
.gitignore이란?
A gitignore file specifies intentionally untracked files that Git should ignore.
.gitignore은 git에서 관리할 때 의도적으로 무시해야 하는 untracked file을 지정해주는 파일입니다.
즉, 우리가 버전 관리를 할 때 쓰지 않을 파일들을 적어주는 것입니다. 프로젝트를 진행하다 보면 버전 관리가 필요 없는 경우가 생기게 된다.
예를 들면,
- c언어의 경우, c파일을 binary 파일로 만들기 위해서 중간에 생성되는 object 파일과 같은 것들을 무시하는 용도로 사용할 수 있게 됩니다.
- binary 파일들의 경우, 빌드할 때마다 달라지기 때문에 이런 파일들을 넣으면 지속적인 conflict이 날 수 있어 제외해 사용할 수 있습니다.
.gitignore 사용법
각자 사용하는 환경과 언어에 따라서 버전 관리에 필요 없는 파일들이 존재할 것입니다.
이런 상황에서 기본적인 .gitignore에 해당하는 파일을 제공해주는 사이트가 존재합니다.
운영체제, 프로그래밍 언어, 개발 환경(IDE) 등을 넣어주면 그것에 적합한 .gitignore을 파일을 제공해줍니다.
https://www.toptal.com/developers/gitignore
gitignore.io
Create useful .gitignore files for your project
www.toptal.com
이렇게 만들어진 .gitignore 파일을 git 최상위 루트 디렉터리에 생성하면 됩니다.
또한 만약 위 사이트에서 제공한 파일 이외의 것을 추가하고 싶은 경우에는
git documentation 문서를 참고해서 형식에 맞게 넣어주면 됩니다.
프로젝트 중간에 .gitignore을 추가하고 싶은 경우
저의 경우에도 중간에 필요성을 느끼고 .gitignore에 추가해 관리한 적이 있습니다.
처음에 실수로 binary 파일을 프로젝트에 넣어 저장해 두니 나중에 pull 할 때마다
제가 만들어둔 binary랑 conflict이 생겨서 .gitignore에 추가해 해당 binary의 추적을 없애주었습니다.
이럴 경우 .gitignore에 추적을 멈추고 싶은 파일을 적어주고 다음 코드를 작성하면 된다.
git rm -r --cached . # cached되어 있는 추적 정보를 제거.
git add . # 현재 파일들로 추적 정보를 바꿈.
git commit -m "Apply new .gitignore"
직접 테스트를 해봅시다.
우선 hello.txt, hi.txt로 구성된 repository를 만든 상황입니다.
여기서 hi.txt를 없애고 싶다면 .gitignore 파일에 hi.txt를 추가해서 아래 코드를 실행해주면 됩니다.
그런 후에 다시 repository를 확인해보면 새롭게 만들어준 .gitignore이 생기고 hi.txt가 사라진 것을 확인할 수 있습니다.
위에 방법처럼 할 수도 있지만 만약 자신이 몇 가지 파일만 수정한 경우라면?
--cached 뒤에 삭제할 파일 이름만 넣어주면 똑같은 결과를 얻을 수 있게 됩니다.
git rm -r --cached binary_one # binary one 추적 정보를 제거.
git add . # 현재 파일들로 추적 정보를 바꿈.
git commit -m "Apply new .gitignore"