본문 바로가기
Dev Tools/IDE

[IntelliJ] IntelliJ Git 사용법 (2) - (commit, push, merge, checkout)

by lucas_owner 2023. 1. 21.

 

IntelliJ Git 사용법 (1) - commit, push, merge, checkout 

- IntelliJ 에서 Git을 사용해서 협업을 진행 하게 된다면, 터미널(Mac)이나 cmd(Windows)를 통해

  명령어를 사용하지 않고 진행 할 수 있다. (필자는 커맨드를 입력하는것이 좀더 편한것 같다 외우는것이 어려울뿐.. )

 

이 글에서는 commit, push, merge, checkout 에 대해서 다루고 차차 이어서 Git 사용법을 적어 보도록 하겠다.

 

또한 IntelliJ에 Git이 연결되있다고 가정하고 진행한다.  연동하는 방법은 아래의 링크에서 확인 해보자.

https://lucas-owner.tistory.com/31

 

- 장점

  1. GUI 를 통해 직관적이다. 
  2. Git 커맨드(명령어)를 사용하지 않아도 된다.
  3. Git log, branch 정보, commit, push 내역등 한눈에 볼 수 있다. 

시나리오

- 우선 예제를 살펴 보려면 필자의 Git 상태에 대해서 파악해야 하고 흐름을 알아야 한다고 생각하기에, 

   간단 하게 Git 상태와, 진행 하게될 흐름을 적어 두겠다. 

 

  1. Git Branch는 2가지로 이루어져 있다 - Master(메인 브랜치), kang(개발 브랜치)
  2. kang(local) 브랜치에서 작업이 이루어 졌고, GitHub 에 commit & push 
  3. master 브랜치로 변경(checkout)
  4. master 브랜치에 kang 브랜치의 commit 내역 Merge 하기 (커맨드: git merge kang)
  5. local master 브랜치 push to GitHub

- 흐름은 단순하다. 개발 브랜치 작업 -> GitHub push -> master 브랜치에 kang 작업내용 merge, push

중요하게 봐야 할 부분은 4,5번 이다. 결국 개발 브랜치의 작업 내용을 master 브랜치에 병합 시켜야 하기 때문이다.


각 기능에 대한 설명

- 여기서 다루게 될 4가지의 기능을 간단하게 설명하고 넘어 가보자. 

 

add(Staging)

- commit 을 알아보기 전에 add 라는 명령어를 알아야 한다. 

- commit 을 하기 전, 커밋(저장)을 원하는 파일들을 묶는 일 이다.

- add는 '스테이징', 혹은 '스테이지에 올린다' 라고 주로 표현한다 

- '스테이징'을 하게 되면 File들은 Staging area에 옮겨진다. 

- add를 하기전에는 File은 working directory 상에 존재하게 된다. 

  working directory -> add -> Staging area 이동.

 

commit

- Staging area에 있는 File 들을 repository에 저장하는 명령어다. 

- 파일의 이전과 달리 변경이 된것을 메시지와 함께 새로이 저장,기록 하는 작업이다.

- commit 은 특정 시점을 생성하게 됨으로 추가된 기능을 한번에 올리는 것 보다는,

  기능 별로 나누어서 commit 하는것이 좋은 전략이다.

- commit 메시지 작성법은 정답은 없다. 

   하지만, 일관성 + 가독성이 중요하다.

 

push

- repositroy에 저장 되어 있는 commit 내역을 GitHub와 같은 원격저장소에 밀어넣는다.

- local 에서 협업하는 모두가 사용하는 원격저장소에 변경사항을 저장한다고 생각하면 된다. 

 

merge

- 병합한다는 뜻을 가진 merge는 A branch 의 내용을 B branch로 병합하는것이다.

    -> A 브랜치가 가장 최신화 되어있고 코드를 합쳐야 한다면 사용하는것이 merge이다. 

- 기본적으로 현재 내가 있는 브랜치에서 다른 브랜치의 내용을 merge 하는 방식이다. 

 

checkout

- 다른 branch 로 이동 하는것이다.

- 이동하는 타겟 branch의 가장 최근 커밋으로 HEAD 만 이동한다. 


Git GUI 사용해보기

 

1.  IntelliJ 의 좌측의 inspector 에 commit 을 클릭하면 아래와 같은 창이 나온다. 

 

- 현재 변경된 파일(추적하는파일), 새로 생긴 파일 등등 변경된 파일들의 목록을 확인할 수 있다.

- 아래의 commit 메시지를 작성한다. 

- commit 만 할것인지, commit과 push를 동시에 할지 선택 할 수 있다.

 

->  commit할 파일 선택 -> commit 메시지 작성 -> commit And Push 클릭.

 

 

2. push 상세 설정에 대한 화면.

 

- 좌측의 브랜치 명은 local 브랜치명 -> push할 원격저장소의 브랜치명 이다.

- 브랜치명 아래는 커밋 메시지.

- 우측에는 어떤 파일들이 커밋 되었는지 확인 할 수 있다. 

 

-> Push 버튼 클릭. 후 원격저장소 확인.

 

3. checkout 을 진행 하기 위해 오른쪽 하단에 위치한 브랜치 정보를 클릭 하면 아래의 정보가 나온다. 

 

4. 이동할 브랜치명 (master) 클릭 후 Checkout 클릭.

 

5. Merge 작업 실행

 

- 브랜치 리스트를 열고, merge 대상의 브랜치 클릭후 

- Merge 'target 브랜치명' into '현재 브랜치' 클릭. 

 

6. Merge가 성공적으로 이루어 졌다면, intelliJ 우측 상단, 혹은 Git/push 클릭. 

7.  예제 2번 이미지와 같은 작업 진행. 

 

8. 원격 저장소에 업데이트 되었는지 확인. 

 

- 아래 이미지의 우측에 보면 'origin & master , origin & kang' 이 보일 것이다.

- 의미는 현재 Git의 HEAD 는 원격저장소, local 모두 왼쪽의 커밋을 바라보고 있다는 것이다. 


정리

- 이번 글에서는 간단하게 commit, push, merge, checkout 에 대해서만 알아 보았지만

   실제로 협업을 해서 작업을 한다면, 더 많은 기능들을 사용하게 된다.(pull, pull Request, Git 에러로 인한 reset, revert ...)

   다음 글에서는 이러한 것들을 더 알아 보도록 하겠다.

반응형

댓글