티스토리 뷰

반응형

IntelliJ에서 Git을 사용하는 기초적인 방법을 설명하는 글입니다.
IntelliJ IDEA 2021.3(Ultimate) 버전을 기준으로 작성되었습니다.
이 글에서는 Git 명령어는 사용하지 않고, IntelliJ에서 GUI로 제공하는 기능만 사용합니다.

 

 

 

Git 설치

https://git-scm.com/downloads 에서 각자의 운영체제에 맞는 설치파일을 다운로드 후 설치해준다.

* Standalone Installer(설치 버전), Portable(무설치 버전)이 있는데 특별한 이유가 없으면 Standalone Installer를 추천

* Next만 눌러서 설치를 완료해도 일반적으로 사용하는데 문제 없다.

* 아래 링크에 각 운영체제별 설치방법 및 설치 Step별 자세한 설명이 잘 나와있으니 필요한 사람은 참고

https://www.lainyzine.com/ko/article/a-summary-of-git-installation-methods-by-operating-system/

 

 

 

Git 사용자 정보 설정

아래 명령어를 윈도우 cmd창이나 git bash나 IntelliJ Terminal 중 아무데서나 입력해준다.

이 과정을 생략하면 나중에 commit 했을 때 History에 보이는 이름과 메일 주소가 의도하지 않은 값으로 나온다.

git config --global user.name "사용자 이름" 
git config --global user.email "사용자 이메일 주소"

 

 

IntelliJ GitHub 연동

▷ GitHub 가입 (https://github.com/)

▷ IntelliJ 프로젝트 생성 (아무 프로젝트나 상관없음)

▷ IntelliJ에 GitHub 연동

    - IntelliJ 화면 상단 메뉴에서 File -> Settigs... 클릭

    - 오픈된 팝업에서 Version Control -> GitHub 클릭

    - +버튼 클릭 -> Log In via GitHub... 클릭

    - 오픈된 JetBrain 웹페이지에서 Authorize in GitHub 버튼 클릭

    - 오픈된 GitHub 웹페이지에서 로그인

    - IntelliJ 팝업에서 OK 버튼 클릭

 

 

 

GitHub Repository 생성 및 소스 올리기

▷ IntelliJ 화면 상단 메뉴에서 Git -> GitHub -> Share Project on GitHub 클릭

▷ 오픈된 팝업에서 Share 버튼 클릭

▷ 오픈된 팝업에서 Add 버튼 클릭

 

여기까지 진행하고 GitHub에 들어가보면 새로운 Repository가 생성되어 있고, 내가 생성한 프로젝트 소스가 올라가 있는 것을 확인할 수 있다.

 

 

 

Git Repository에서 소스 Local로 내려받기

연습삼아 해보는 것이기 때문에 이 부분은 그냥 건너 뛰어도 상관없다.

 

▷ IntelliJ 화면 상단 메뉴에서 File -> Close Project 클릭

▷ Local에서 아까 생성했던 프로젝트 폴더를 삭제

▷ 오픈된 팝업에서 Get from VCS 버튼 클릭

▷ URL 입력 하고, Directory 지정 후 Clone 버튼 클릭

    * URL은 GitHub 웹페이지에서 이전에 생성했던 Repository를 클릭하면 브라우저의 주소표시줄에서 확인 가능

 

 

 

Git Branch 전략

Git Branch를 생성하고, 관리하는 방법은 각 회사/팀마다 다르다.

이 글에서는 총 4개의 Branch를 생성해서 연습해볼 예정이다.

▷ master(상용서버에 배포된 버전),

▷ develop(개발서버에 배포된 버전)

▷ feature1(기능1 개발중인 Branch)

▷ feature2(기능2 개발중인 Branch)

 

 

 

Branch 확인하기, Branch 생성하기

Git Repository를 생성하면 기본적으로 master Branch가 생성되어 있다.

좌측 하단의 Git 탭을 클릭하면 Branch 목록과 Git History를 볼 수 있고,

우측 하단의 master라고 되어있는 부분을 클릭해도 Branch 목록을 볼 수 있다.

우측 하단의 master는 현재 Branch의 이름을 의미한다.

좌측 하단의 +버튼을 클릭하거나 우측 하단의 현재 Branch명을 클릭하면 나오는 팝업창에서 + New Branch를 클릭하면 새로운 Branch를 생성할 수 있다. develop Branch를 생성해보도록 하자.

Branch를 확인해보면 Local에만 생겼고, Remote에는 생성되지 않았다.

우측 상단의 Push 버튼(녹색 화살표 모양 버튼)을 클릭해서 Push를 완료하면 Remote에도 develop Branch가 생성된다.

 

 

 

Git Index(Staging Area)에 추가하기

Git은 Index(Staging Area)에 있는 파일만 commit 할 수 있다.

새로운 파일을 생성해보면 Add File to Git이라는 확인창이 출력된다.

Add 버튼을 클릭하면 Index에 추가되고, 파일명이 녹색으로 바뀐다.

Cancel 버튼을 클릭하면 Index에 추가되지 않고, 파일명이 빨간색으로 바뀐다.

기존에 있던 파일의 내용을 수정하면 Index에 추가되고, 파일명이 하늘색으로 바뀐다.

Index에 추가되지 않은 파일을 다시 Index에 추가하려면 좌측의 파일목록 트리에서 파일 우클릭 -> Git -> Add를 클릭하면 된다.

 

 

Commit / Push

Commit 버튼(우측 상단의 녹색 체크모양의 버튼)을 클릭하면 좌측 상단에 Commit 가능한 파일 목록이 표시된다.

Changed 하위에 있는 파일이 Git Index에 추가된 파일이고,

Unversioned Files 하위에 있는 파일은 Git Index에 추가되지 않은 파일이다.

Commit 할 파일을 체크하고, 파일 목록 아래에 Commit 메시지를 작성한 후 그 밑에 있는 Commit 버튼을 클릭하면 Local Branch에 Commit이 완료된다.

그 옆의 Commit and Push... 버튼을 클릭하면 Remote Branch까지 한방에 올라간다.

Local Branch를 굳이 활용하지 않는다면 Commit and Push...가 더 편한 방법이다.

우측 상단의 Push 버튼(녹색 화살표 모양 버튼)을 클릭하면 Index에 추가된 파일이 Remote Branch로 올라간다.

※ IntelliJ에서는 Git Index에 추가되지 않은 파일도 체크하고 Commit 버튼을 클릭하면 자동으로 Git Index에 추가 후 Local Branch에 Commit 한다.

 

 

History 확인하기

History를 확인해보면 Commit만 했을 때는 Branch명이 develop이라고만 되어있고, Push까지 완료하면 origin & develop으로 변경되는 것을 확인할 수 있다.

History 한줄을 클릭하면 우측에 변경된 파일 목록이 출력된다.

파일을 더블클릭하면 이전과 비교해서 어떤 부분이 달라졌는지 자세히 보여준다.

 

 

Checkout / Merge

현재까지의 변경사항은 develop Branch에만 적용되어 있다.

master Branch에도 적용하려면 일단 master Branch로 이동해야한다.

Branch 이동을 Checkout이라고 한다.

Branch 목록에서 master를 우클릭 또는 클릭 후 checkout을 클릭하면 develop Branch에서 master Branch로 이동된다.

※ Local Branch로 Checkout 하든 Remote Branch로 Checkout 하든 똑같이 Local Branch로 Checkout이 되기 때문에 checkout 할때는 Local과 Remote를 신경쓸 필요는 없다.

 

Branch 목록에서 develop을 우클릭 또는 클릭 후 Merge 'develop' into 'master'를 클릭하면 master의 Local Branch에만 develop Branch의 변경내용이 반영된다.

Push까지 완료하면 Remote Branch까지 반영된다.

※ Local Branch를 Merge하면 Commit한 내용만 반영되고, Remote Branch를 Merge하면 Push까지 완료된 내용이 반영된다.

 

 

 

Fetch

Fetch는 전체 Remote Branch의 변경내용이 있는지 확인하는 기능이다.

테스트를 위해 develop Branch로 Checkout한 후 feature1 Branch를 생성하고, Push 해준다.

다시 develop Branch로 Checkout한 후 feature2 Branch를 생하고, Push 해준다.

※ 새로 생성된 Branch는 현재 Checkout된 Branch를 기준으로 생성되는 것임을 기억해야 한다.

 

Github 웹페이지에서 feature1/feature2 Branch의 소스를 직접 수정하고, Commit 한다.

그리고 IntelliJ 화면 상단 메뉴에서 Git -> Fetch를 클릭한다.

feature1/feature2 Remote Branch의 History는 Github 웹페이지에서 수정된 내역이 추가되어 있고,

feature1/feature2 Local Branch 우측에는 아래쪽으로 향한 파란색 화살표 아이콘이 생긴 것을 확인할 수 있다.

내려받을 소스가 있다는 의미이다.

 

Fetch는 변경사항이 있는 Remote Branch의 History를 업데이트 해주고, Local Branch는 내려받을 소스가 있다고 알려주는 기능이라고 볼 수 있다.

 

 

 

Update Project...

Update Project...는 IntelliJ 화면 우측 상단에 하늘색의 아래쪽으로 향한 화살표 버튼이다.

현재 Checkout된 Branch를 Fetch 하고, Remote Branch를 Local Branch로 Merge 해주는 기능이다.

 

 

 

Conflict 해결

Push, Merge, Update Project 등을 할 때 같은 파일의 동일한 부분을 서로 다르게 수정되어 있으면 Conflict가 발생한다.

Conflict가 발생하면 아래와 같은 팝업이 호출되는데 왼쪽과 오른쪽을 참고해서 가운데를 적당하게 수정해주면 가운데의 소스로 적용이 된다.

 

 

Commit 취소

Git History에서 아직 Push되지 않은 이력을 우클릭 한 후 Undo Commit...을 클릭하면 Commit 취소가 가능하다.

 

 

Rollback

수정된 내용을 가장 최근 History로 되돌릴 수 있다.

파일소스에서 우클릭 -> Git -> Rollback을 클릭하여 할수도 있고, 파일목록에서 여러개를 한꺼번에 선택하고 우클릭 -> Git -> Rollback을 클릭해서도 할 수 있다.

 

 

 

Smart Checkout / Force Checkout

Local에서 소스를 수정하고, Commit하지 않은 상태에서 다른 Branch로 Checkout할 때 충돌이 발생하면 아래와 같은 팝업창이 나올 수도 있다. Force Checkout을 클릭하면 Local에서의 수정된 내용을 날려버리는 것이고, Smart Checkout은 Local에서의 변경 내용을 Git Index에 보관하는 것이다.

 

반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함