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
- 장점
- GUI 를 통해 직관적이다.
- Git 커맨드(명령어)를 사용하지 않아도 된다.
- Git log, branch 정보, commit, push 내역등 한눈에 볼 수 있다.
시나리오
- 우선 예제를 살펴 보려면 필자의 Git 상태에 대해서 파악해야 하고 흐름을 알아야 한다고 생각하기에,
간단 하게 Git 상태와, 진행 하게될 흐름을 적어 두겠다.
- Git Branch는 2가지로 이루어져 있다 - Master(메인 브랜치), kang(개발 브랜치)
- kang(local) 브랜치에서 작업이 이루어 졌고, GitHub 에 commit & push
- master 브랜치로 변경(checkout)
- master 브랜치에 kang 브랜치의 commit 내역 Merge 하기 (커맨드: git merge kang)
- 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 ...)
다음 글에서는 이러한 것들을 더 알아 보도록 하겠다.
'Dev Tools > IDE' 카테고리의 다른 글
[IntelliJ] IntelliJ + Git 연동(1) (원격저장소 push) (0) | 2023.01.22 |
---|---|
[IntelliJ] Java 프로젝트 생성 (0) | 2023.01.22 |
[IntelliJ] active profile 설정 하기 (Ultimate & Community) (0) | 2023.01.02 |
댓글