[Git] .gitignore는 왜 필요하고, 어떻게 적용하는 것일까?

2024. 3. 30. 16:45Developer Basis

깃은 복잡해보이지만, 간단히 요약해서 내 컴퓨터(로컬)에서 작업한 코드들을 깃(원격)이라는 공간에 올리는 것. 그게 전부이다.

이때, 내 컴퓨터에서 작업했던 파일을 깃이라는 곳에 올릴 때, 예상치도 못한 낯선 파일들이 올라갈 수 있다는 사실!

뭐…예를 들자면 Mac을 쓰는 분들에게는 익숙(?)하실 수도 있는 .DS_Store 같은 녀석..?

*참고로! DS_Store 파일은 애플에서 정의한 파일 포맷을 의미하는 파일을 의미한다.
애플의 MacOS 시스템이 finder로 폴더에 접근하면 해당 파일이 자동으로 생기게 되는데,
이놈이 이제 계속 수정이 이루어지면 Conflict를 발생시키는 주 원인이라…이 파일이 본인 깃 레포에 한번 들어가면 PR을 한번 올릴 때마다 계속 Conflict가 발생할 수 있다.

이 파일이 문제다.


그럼 .gitignore 파일은 뭐냐!
이렇게 위에처럼 예상치도 못하게 Repository에 올라가서 우리들을 힘들게 만드는 이런 파일들을 애초에 Git 안에 발도 못담그도록 막는 역할을 하는 파일이다.

조금 어렵게 말해서 .gitignore에 정의된 파일은 Staging Area에 올라갈 수 없어 tracking 되지 않는다! 라고 말할 수도 있겠다.

이런 식으로 gitignore 파일을 레포에 올리게 된다.


이 글에서는 Git에서 Create new file로 바로 만드는 방법에 대해 소개해보겠다.

.gitignore 파일은 프로젝트 “최상위 위치”에 있어야 하는게 핵심이다.
본인 레포 메인으로 들어가서, 첫 화면에서 Add file → Create new file을 눌러주자.


파일 이름을 .gitignore로 설정하고


무시할 내용을 작성해주시면 이게 끝이다! (별거 없지?)


직접 일일이 치기 귀찮으면 아래 사이트 들어가서 쉽게 만들 수도 있다.

 

gitignore.io

Create useful .gitignore files for your project

www.toptal.com


아래와 같이 사용하는 개발 환경, 언어, 라이브러리 등의 키워드를 입력하고
생성 버튼을 누르면 자동으로 .gitignore 파일이 만들어지니 그대로 갖다가 추가해주시면 편하게 사용할 수 있다!


뭐 이런 식으로 만들어지니까!
불필요한 것들은 직접 지우시고 필요한 것들만 갖다 쓰면 되겠다.


그래도 직접 .gitignore 파일을 수정해야하는 경우가 생길 수 있으니 명령어가 어떤걸 의미하는지도 간략하게 알아보고 글을 마무리해보자.

✔️ 폴더 전체 무시하기 : 폴더이름/ (예를 들어, project라는 이름의 폴더를 무시할거면 project/ 라고 작성)

✔️ 특정 파일 무시하기 : 디렉터리 주소/파일명 (예를 들어, Desktop에 있는 Lab2.vcxproj 파일을 무시하고 싶으면 Desktop/Lab2.vcxproj 이라고 작성) -> 만약 루트에 있는 .DS_Store를 무시하고 싶으면, 그냥 .DS_Store만 쓰면 되는 것.

✔️ 확장자 무시하기 : *.확장자 (예를 들어, zip 파일을 무시하고 싶으면 *.zip 이라고 작성)