Appia의 IT세상

[깃, Git] Git에서 .gitignore을 사용해서 추적안되는 파일, 폴더 설정하기 본문

IT_OS_ETC../[OS]Windows10&11

[깃, Git] Git에서 .gitignore을 사용해서 추적안되는 파일, 폴더 설정하기

Appia 2023. 11. 16. 07:42
반응형

[깃, Git] Git에서 .gitignore을 사용해서 추적안되는 파일, 폴더 설정하기

[깃, Git] Git에서 .gitignore을 사용해서 추적안되는 파일, 폴더 설정하기

이전 포스팅에서는 Git의 Amending Commit을 이용해서, 이전 Commit에서 누락한 파일 또는 Commit 메시지를 수정하는 방법에 대해서 살펴봤습니다. 그러면, 이번 포스팅에서는 git에서 파일 또는 폴더가 추적되지 않게 즉, git에서 무시될 수 있게 하는 방법에 대해서 알아보고자 합니다. 

 

일례로, 다음과 같이 버전관리가 필요로 하지 않는 파일들이 존재합니다. 예로 들면, 현재 나의 컴퓨터 상태를 나타내는 설정파일 및 다양한 파일들이 있을 수 있습니다. 그러한 부분들은 실제로 git에서 추적이 불필요합니다. 물론 사용자가 매번, 이러한 파일들에 대해서 git add 및 git commit시에 신경써서, 이러한 파일들이 빠지도록 할수도 있지만, 설정자체로 이러한 파일들을 제거 할 수 있습니다. 가장 좋은 방법이 바로 ".gitnore"파일을 이용하는 것입니다. 다음 예시를 통해서 한번 살펴보도록 하겠습니다. 

 

일단, git의 추적이 필요로 하지 않는 .info 파일에 대해서 생성을 해보도록 하겠습니다. 

$ touch setup.info

 위의 명령어를 실행해보도록 하겠습니다. 

setup.info파일생성

위의 과정이후에, git status를 실행해보도록 하겠습니다. 

setup.info 생성 후 git status 결과

아마도 앞선 포스팅을 보셨던 분들은 위와 같은 결과를 예상하셨을 것입니다. 빨간색으로 현재 stage에 올라오지 않은 변경점에 대해서 표시가 됩니다. 여기에서 .ignore을 이용해서, 이 부분을 무시하도록 해보도록 하겠습니다. 

 

먼저, 다음 명령어를 통해서 ".gitignore"파일을 생성하도록 하겠습니다. 

$ touch .gitignore

 

.gitignore 파일 생성

그런 후에 해당 파일을 열어서, 다음과 같은 원칙으로 입력해주도록 하겠습니다. 

형태 사용방식 예시
특정확장자 포함 모든 이름 *.확장자 *.info
특정 이름의 모든 파일 파일이름.* config.*
특정 폴더 하위 폴더이름/ sub_config/
특정 폴더의 파일 폴더이름/파일이름 sub_config/ccc_test.t1

그럼 먼저, info의 확장자를 가지는 모든 파일을 git에서 무시하도록 해보겠습니다. 저의 경우 윈도우 탐색기를 열어서, 해당 파일을 수정하였습니다. 

$ start . #현재 폴더 기준 탐색기 실행

위의 명령어를 통해서, 해당 폴더를 열어, .gitignore파일을 다음과 같이 수정하였습니다. 

.gitignore파일 수정 예시

그리고 나서 다시 git status를 입력하여 상태를 보니, 다음과 같이 .gitignore파일을 git에서 모니터링 하는 것을 알 수 있습니다. 

.gitignore파일 수정 후 결과

저는 .gitignore파일이 git에서 추적되는 것을 보고, 이 또한 무시되게 하겠습니다. 물론, 실제 회사에서는 형상관리에 대한 관리를 하시는 분이 이 부분에 대해서 입력해서 공유 하는 경우가 많습니다. (이 부분은 완전히 저의 개인 취향입니다.)  

.gitignore파일 수정  (.ignore파일 또한 모니터링 안되게 수정)

위와 같이 수정한 후에 다시한번 "git status"를 입력하니, 다음과 같은 화면이 나타납니다. 

.gitignore파일 수정 후 결과 (.ignore파일 또한 모니터링 안되게 수정)

이와 같이 .ignore파일을 수정하여 파일을 버전관리 대상에서 제외시킬 수 있습니다. 그러면, 위에서와 약간의 다른 예시로, 특정 파일 이름을 가지는 모든 파일에 대해서 버전관리대상에서 제외시켜보도록 하겠습니다. 

 

다른 예시인데,  very라는 이름을 가지는 모든 파일에 대해서 버전관리 대상에서 제외시키도록 하기와 같이 내용을 추가하겠습니다. 

very.*

 

.gitignore파일 수정

그리고 나서, very.txt를 생성하여, git status로 실행하여 git의 현재 상태를 보도록 하겠습니다. 보이는 바와 같이 현재 파일이 추가되도, git에서는 관리 대상에서 제외되고 있다는 것을 알 수 있습니다.  

.gitignore파일 수정 결과

물론 다음과 같은 옵션들도 당연히 추가되어 사용할 수 있습니다. 

형태 사용방식 예시
특정이름으로 시작하는 특정이름*.* too*.*
특정이름을 포함하는  *파일이름*.* *too*.*

여기에서, 대소문자의 구별을 주의 하셔야 합니다. 

 

그러면, 이제는 하위 폴더에 대해서 살펴보도록 하겠습니다. 그럼 이번에는 폴더를 2개 생성하고, 각 폴더에는 파일을 생성하도록 하겠습니다. 

$ mkdir sub_config
$ mkdir sub_config1
$ cd sub_config
$ touch ex1.txt ex2.txt
$ cd ..
$ cd sub_config1
$ touch tex1.txt tex2.txt
$ cd ..

위와 같은 형태로, 현재 예시를 한번 만들어봤습니다. 

예시 생성

그런 후에 다시 git status를 실행하니, 생성한 폴더가 추적되고 있음을 확인할 수 있습니다. 

폴더 및 폴더의 하위 파일 생성 후 git status 결과

위의 부분을 바탕으로, sub_config 폴더 전체를 버전관리 대상에서 제외 시키도록 하겠습니다. 다음 부분을 .gitignore 부분에 추가해주도록 하겠습니다.

sub_config/

그런 후에 .gitignore를 저장하도록 하겠습니다. 

.gitignore수정

그런 후에 다시한번 git status부분을 입력하면, .gitignore에 추가하지 않은 sub_config1/부분만 남아 있는 것을 알 수 있습니다. 

git status 결과

이와 같은 방법으로 파일 및 폴더의 내용에 대해서 버전관리 대상에서 제외할 수 있습니다. 

[깃, Git] git add와 git commit 하기(with git log)

 

[깃, Git] git add와 git commit 하기(with git log)

[깃, Git] git add와 git commit 하기(with git log) 앞선 포스팅에서는 git commit개념 및 workflow에 대해서 살펴봤습니다. 물론, 이론적으로 어떠한 단계로 commit이 이루어지는 지에 대해서는 인지를 하셨을 것

appia.tistory.com

이번 포스팅에서는 [깃, Git] Git에서 .gitignore을 사용해서 추적안되는 파일, 폴더 설정하기라는 주제로 git에서 모니터링 되지 않게 버전관리 대상에서 제외하는 방법을 살펴봤습니다. 작업하시다가 궁금하신 점이나 문의 사항이 있으시면 언제든지 댓글 및 방명록에 글남겨 주시길 바랍니다. 감사합니다. 

반응형
Comments