헤르메스 LIFE

[IntelliJ] Git을 이용한 Commit & Push 하기 및 gitignore 파일 생성 본문

Eclipse와 IntelliJ 관련

[IntelliJ] Git을 이용한 Commit & Push 하기 및 gitignore 파일 생성

헤르메스의날개 2021. 1. 24. 17:28
728x90

Git을 처음 써봅니다. ( 몇 년 전에 공부했던 건 당연히 생각안납니다. ㅠ.ㅠ )

목표

IntelliJ를 이용해서 Git 을 SVN 처럼 사용하기.

1. 전체 sync 하기

2. Commit & Push 하기

개발환경

IntelliJ 2020.3

Git 2.30


IntelliJ 에서는 기본적으로

수정된 파일은 파랑색으로 보입니다.

신규 추가된 파일은 녹색으로 보입니다.

병합된 파일은 보라색으로 보입니다.

※ 자세한 내용은 [File] >> [Setting] >> Version Control >> [File Status Colors] 를 참고하세요.

 

[프로젝트] >> [마우스 오른쪽 클릭] >> [Git] >> [Commit Directory] 합니다.

아래처럼 수정된 내용이 보여집니다.

그런데.. Commit 되지 않아도 될 파일 및 폴더까지 보여집니다.

안 보여지는 게 좋겠죠.


1. 제외할 폴더를 선택하고, [마우스 오른쪽 클릭] >> [Git] >> [Add to .gitignore] 를 선택합니다.

2. 처음 생성하신다면 ..

3. .gitignore 파일을 추가해야합니다.

4. [프로젝트] >> [마우스 오른쪽 클릭] >> [Git] >> [Commit Directory] 

※ .gitigronre를 추가했지만, 이미 추적 중인 내용 때문에 계속 보여집니다.

보여지는 내용을 삭제하고 싶으시면 아래와 같이 처리하시면 됩니다. ( 가능한 터미널 환경에서 안하고 싶지만 확인해야 합니다. )

> git status
> git rm --cached <파일>
> git rm -r --cached <폴더>
  • -r : recursive removal - 폴더 안에 다른 파일이 있으면 그 폴더를 지우지 못한다. 그래서 폴더를 지우기 전에 안에 있는 내용을 반복적으로 비워주고 지우겠다는 옵션이다. 
  • --cached : only remove from the index - index에만 지워준다는 말은 Stage Area에서 내려주겠다는 옵션이다. 이 옵션을 사용하면 git에 있는 인덱스 파일만 삭제하고 실제 파일은 삭제되지 않는다. 
> git rm -r --cached .       <- 여기 점까지..
> git add .
> git commit -m ".gitignore fix"

 

5. .gitignore 파일 생성완료.

더보기

# IntelliJ 설정폴더
/.idea/
# Tomcat Log 폴더
/log/
# Spring Boot Log 폴더
/logs/
# Compile된 class 폴더
/target/
/work/
# Mongo Explorer plugin
.idea/**/mongoSettings.xml

# File-based project format
*.iws

# IntelliJ
out/

 

6. [프로젝트] >> [마우스 오른쪽 클릭] >> [Git] >> [Commit Directory] 합니다.

처음과 달리 log, logs, target, work 폴더의 수정된 내용이 보이지 않습니다.

commit : commit 만 ..

commit and Push : Remote 서버(GitHub)에 전송까지..

- commit 만 해둔 내역이 쌓여 있으면, 전송되지 않는 모양입니다.

7. Commit 후에는 반드시 Push 를 해줘야 합니다.

- 그래야 Remote 에 반영됩니다. 그리고, Commit 만 해두면 쌓여 있습니다. ㅠ.ㅠ

Commit 시에 등록한 Comment 를 선택하고, Push 를 선택하면 됩니다.

 


아래의 내용을 읽어보면 왜 Push를 해야 하는지 이해가 될 겁니다.

commit 이라는 작업은 Local 저장소에 저장하는 기능이기 때문에 Remote Repository ( GitHub )에 저장하기 위해서 Push를 해야 합니다.


Committed, Modified, StagedGit은 파일을 Committed, Modified, Staged 이렇게 세 가지 상태로 관리한다.

Committed란 데이터가 로컬 데이터베이스에 안전하게 저장됐다는 것을 의미한다. 

Modified는 수정한 파일을 아직 로컬 데이터베이스에 커밋하지 않은 것을 말한다.

Staged란 현재 수정한 파일을 곧 커밋할 것이라고 표시한 상태를 의미한다.

이 세 가지 상태는 Git 프로젝트의 세 가지 단계와 연결돼 있다. Git 디렉토리, 워킹 트리, Staging Area 이렇게 세 가지
단계를 이해하고 넘어가자.

Git 디렉토리는 Git이 프로젝트의 메타데이터와 객체 데이터베이스를 저장하는 곳을 말한다. 이 Git 디렉토리가 Git의
핵심이다. 다른 컴퓨터에 있는 저장소를 Clone 할 때 Git 디렉토리가 만들어진다.

워킹 트리는 프로젝트의 특정 버전을 Checkout 한 것이다. Git 디렉토리는 지금 작업하는 디스크에 있고 그 디렉토리
안에 압축된 데이터베이스에서 파일을 가져와서 워킹 트리를 만든다.

Staging Area는 Git 디렉토리에 있다. 단순한 파일이고 곧 커밋할 파일에 대한 정보를 저장한다. 종종 “Index” 라고
불리기도 하지만, Staging Area라는 명칭이 표준이 되어가고 있다.

 

Pro Git ( git-scm.com/book/ko/v2 ) 한글 문서 13 ~ 14 page

 

Git - Book

 

git-scm.com

 

 

728x90