본문 바로가기

형상관리/GIT

[GIT] .gitignore파일 Repository에 적용

반응형

GIT을 처음 세팅하면 하는일중에 하나는 .gitignore파일을 작성하는 것이다.

 

1. ".gitignore" 파일이란?

.gitignore파일은 해석그대로 GIT에서 .gitignore파일에 정의된 규칙의 파일들은 작업에서 배제시키는 역할을 가진다.

 

이게 왜 필요하냐면 프로젝트나 IDE설정, 잠깐 만들어놓은 임시파일 같은 경우에는 commit, push를 하면 안된다. 

따라서 stage에 add할때 제외되어야 하는데, 이 규칙을 정의해 놓은것이 .gitignore파일이다.

 

Java의 예를 들어보면,

    1. eclipse를 사용하면 .project파일 과같은 사용자 종속적인 파일들

    2. intellij를 사용하면 .idea같은 프로젝트 설정파일

    3. Java가 컴파일되어 나온 class 파일들

    4. 파일업로드 기능이 있는 웹 프로젝트의 경우, 업로드된 파일

위와같은 파일들은 Remote Repository에 올라가면 안된다.

 

2. SVN과의 차이점과 그에따른 작업 수순

SVN에서는 파일들을 선택하고 commit / update하는것이 가능하다.

그러나 GIT에서는 파일들을 선택하고 commit하는것은 가능하나, 모든작업의 단위가 commit이기 때문에, 한번 commit되어서 push를 하면 commit단위로 pull을 할 수 있다.

 

따라서 선택적으로 특정 파일을 골라서 삭제하는 기능은 없다.

 

따라서 이러한 삭제작업도 하나의 commit이고 이 commit을 push함으로써 Remote Repository의 파일이 삭제되는 수순이다.

 

1. ".gitignore"파일을 작성한다. (없으면)

2. ".gitignore"파일에 정의된 규칙에 해당되는 파일들을 제거한다. (물론 일일히 수작업을 할수는 없다.)

3. commit을 하고 push한다.

의 수순으로 진행된다.

 

# .gitignore 파일 생성

# unix 기반 운영체제
git rm --cached `git ls-files -i --exclude-from=.gitignore`
# windows (git bash)
git ls-files -i --exclude-from=.gitignore | xargs git rm --cached

git commit -m "Apply .gitignore on Repository"
git push origin (your-branch)

 

".gitignore"파일 작성은 이 글에서는 다루지 않으므로 생략한다.

".gitignore"파일에 작성된 규칙으로 찾아서 제거한다. 만약 Remote Repository뿐만아니라 Local Repository에서도 제거시키고 싶으면 --cached옵션을 제거하면 된다.

commit하고 push한다.

반응형

'형상관리 > GIT' 카테고리의 다른 글

readme.md 예시  (0) 2024.03.08
GIT 특정 HEAD 이동 (commit, push 되돌리기)  (0) 2023.02.17