IntelliJ에서 Git으로 작업하기

taketheking·2024년 10월 24일
0

Git

목록 보기
2/8

1. Git 시작하기


1) Git 설치하기

https://git-scm.com/로 접속한 뒤, Download for Windows or mac를 클릭해 설치를 시작합니다.

설치 옵션은 검색해서 찾아보자.

https://git-scm.com/book/ko/v2/%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0-Git-%EC%84%A4%EC%B9%98

https://codingapple.com/unit/git-install-windows-mac/

2) Github 가입하기

github.com 사이트에 들어가서 가입하면 된다. 모르면 검색

3) IntelliJ에 Git 설정

단계별 설정

  1. Git 설치 확인: 커맨드 라인 또는 터미널에서 git --version을 실행하여 Git이 설치되어 있는지 확인합니다.

  2. 유저 세팅 하기ㅣ 터미널(종류 상관x)에서 git config --global user.email "user_email"git config --global user.name "user_name"를 입력하여 유저 정보를 등록한다. 그리고 git config --list를 통해 확인한다.

  1. IntelliJ IDEA 설정: File > Settings (Windows/Linux) 또는 IntelliJ IDEA > Preferences (macOS)로 이동하여 Version Control > Git에서 Git 실행 파일의 경로를 확인하거나 설정합니다.
  1. 리포지토리 초기화: IntelliJ IDEA에서 VCS > Import into Version Control > Create Git Repository를 선택하여 현재 프로젝트 폴더를 Git 리포지토리로 초기화합니다.
  1. Git 계정 로그인 설정:

    • 계정 연결: Settings/Preferences에서 Version Control > GitHub 또는 Git > Accounts를 선택합니다. 여기서 GitHub, GitLab, Bitbucket 등 다양한 Git 호스팅 서비스 중 하나를 선택하고, Add Account 버튼을 클릭하여 로그인 정보를 입력합니다.
    • Token: 계정 전체 권한을 주지 않고 token 을 통해 지정한 권한만 가지도록 로그인 정보를 제한적으로 추가 할 수 있습니다.

이 단계를 완료하면 IntelliJ IDEA에서 Git 리포지토리를 관리하고, Git 호스팅 서비스에 안전하게 연결하여 작업을 수행할 준비가 완료됩니다. 계정 로그인 설정을 통해 푸시, 풀, PR 생성 등의 작업을 보다 원활하게 수행할 수 있게 됩니다.

2. Intellij 프로젝트를 Git/GitHub에 연동하기

프로젝트를 생성하여 Github에 직접 올리는 과정은 프로젝트의 책임자 급에서 진행하는 과정이다. 회사에서 공동으로 작업하는 환경에서는 할 일이 없다.


1) 프로젝트를 Git Repository로 설정하기

방법 1 - 프로젝트 생성시 초기화

리포지토리 초기화: 프로젝트 폴더에서 Git 리포지토리를 시작하려면, IntelliJ IDEA의 프로젝트 생성시 Create Git Repository 옵션을 선택합니다. 이렇게 하면 선택한 디렉토리에 .git 폴더가 생성되며, 이 폴더는 모든 버전 관리 정보를 저장합니다.

방법 2 - 프로젝트 생성 이후에 Git 연결

처음 Intellij에 들어가서 프로젝트를 생성하면 나오는 메뉴바이다.

저기서 VCS -> Git 으로 변경되어야 한다! -> VCS 클릭!!


Enable Version Control Integration.. 클릭 후 -> Git을 선택 OK를 눌러주면 VCS -> Git으로 바뀌게 됨!

2) Intellij에 Github 아이디 추가하기


그 후 File -> Settings -> Version Control -> GitHub 으로 들어가 Add account나 + 버튼을 눌러 아이디를 추가해 준다.

추가로 github 홈페이지에서 인증을 하면


이렇게 연동이 완료된다.

3) Github 연결 후 Commit 및 Remote Repository(원격 레포지토리)로 SHARE

Git연결을 완료했으면 그대로 프로젝트를 Git 원격 레포로 커밋을 한다.


Share Project on GitHub 클릭! -> Commit 내역 작성(Description) 후 Share

원격 레포에 들어갈 파일들 체크하여 Add 눌러주면 -> 친절하게 successfully shared project on Github이라고 뜬다!!

4) Github에서 프로젝트가 잘 들어갔는지 확인

Github으로 들어가 본인 repo로 들어가면 아래 사진과 같이 정상적으로 git에 등록된 것을 볼 수 있다.

참고

5) Git연동 해제하기

Git연동 해제는 간단하다.

1. GitHub 아이디 연동 해제

Settings -> Version Control -> Github 들어가서 아이디 지우기

해당 프로필 클릭 -> " - " 클릭 -> Apply 클릭
하면 계정과 연동이 해제되고

2. Intellij 프로젝트의 연동 해제 시

File -> Settings -> 검색창에 mapping을 치거나 아래 사진과 같이 Directory Mappings를 찾아서 아래사진과 같이

VCS가 Git으로 연결되어 있는 것을 으로 바꿔주면 연동 해제 완료!!

3. 로컬 저장소 삭제

IntelliJ 하단에서 Terminal을 실행한 후, Git Bash를 선택하고 해당 프로젝트의 디렉토리에서 다음의 명령어를 입력한다.

rm -rf .git
해당 명령어가 프로젝트 내의 .git 폴더 및 하위 폴더를 삭제하여 로컬 저장소를 삭제해주는 명령어이다.

이 때, .gitignore 파일은 삭제되지 않는데 설정을 유지하는 것이 좋다. 만약 없다면 git init 명령어를 실행시키면 되지 않을까 싶다. 문제는 git init 명령어를 실행하면 이전의 .git폴더가 그대로 복구되는 것 같아서 다른 프로젝트의 .gitignore 파일을 복사해오는 것도 방법인 것 같다. 그래서 나는 git init 명령어는 실행하지 않고 gitignore 파일을 복사해오는 후자의 방법으로 해결했다.

3. git 프로젝트 가져오는 2가지 방법

일반적으로 프로젝트를 진행할 때는 github에서 프로젝트를 clone해와서 작업을 한다.


방법 1) 주소를 통해 git 프로젝트 가져오기

1. Git 주소 복사하기

Clone 하려는 Git 주소를 복사합니다.

2-1 or 2-2 선택

2-1. File - New - Project from Version Control... 선택

2-2. Get from Version Control 선택

참고

  • 매번 Intellij 실행 시 최근 프로젝트가 실행이 되어서 프로젝트를 선택할 수 있는 기본 화면이 안나온다면 아래와 같이 설정 변경
  1. File > Settings ( 윈도우 기준 단축키 : Ctrl + Alt + s)

  2. Reopen last project on startup 해제

3. Repository URL 탭

Version control: Git
URL:  복사한 Git 주소를 붙여넣기 합니다.
Directory: Git 소스를 Clone할 디렉토리를 지정합니다.

4. 지정한 디렉토리에, Git 소스가 Clone되었습니다.

방법 2) GitHub에 로그인하여 내 Repository Clone 하기


1. File - New - Project from Version Control...

2. GitHub - Log in via GitHub

GitHub에 로그인하여, 내 Repository를 Clone 할 수 있습니다.

3. 인증

IntelliJ가 내 계정에 접근하여 Repository를 읽어올 수 있도록 인증합니다.

4. Repository 선택

인증이 끝나면, IntelliJ에서 내 Repository 목록을 조회할 수 있습니다.
Clone 하려는 Repository를 선택하고, Clone 버튼을 클릭합니다.

4. 기본 Git 명령어


1) Add (Staging)

파일을 수정하거나 새 파일을 생성한 후, 이러한 변경 사항을 다음 커밋에 포함시키기 위해 Git > Add를 사용하여 스테이징 영역에 추가합니다.

Git은 Index(Staging Area)에 있는 파일만 commit 할 수 있다. 새로운 파일을 생성해보면 Add File to Git이라는 확인창이 출력된다.

Add 버튼을 클릭하면 Index에 추가되고, 파일명이 녹색으로 바뀐다.
Cancel 버튼을 클릭하면 Index에 추가되지 않고, 파일명이 빨간색으로 바뀐다.
기존에 있던 파일의 내용을 수정하면 Index에 추가되고, 파일명이 하늘색으로 바뀐다.

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

2) Commit

스테이징 영역에 추가된 변경 사항을 로컬 리포지토리에 기록합니다. IntelliJ IDEA의 Commit 창을 통해 커밋 메시지를 입력하고, Commit 버튼을 클릭합니다. 또한 Commit and 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 한다.

3) Push

로컬 리포지토리의 커밋을 원격 리포지토리에 반영하기 위해 Git > Push를 사용합니다.

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

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

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

4) Pull

원격 리포지토리의 최신 변경 사항을 로컬 리포지토리로 가져오려면 Git > Pull을 사용합니다.

  • Push와 Pull을 하다보면 Remote Repository와 local Repository의 내용이 달라서 충돌이 일어날 수 있다. 충돌은 아래에서 설명한다.
    충돌이 나면 해당 코드를 수정해서 다시 싱크를 맞추면 된다.

5. Branch를 설정하는 방법

Git을 통해 Repository를 생성 및 clone을 하면 협업 중에 오류를 방지하기 위해 여러 Branch로 나누어서 작업했다가 다시 합치는 과정을 거친다.

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

예시)
▷ master(상용서버에 배포된 버전),
▷ develop(개발서버에 배포된 버전)
▷ feature1(기능1 개발중인 Branch)
▷ feature2(기능2 개발중인 Branch)


1) Branch 확인하기

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

좌측 하단의 Git 탭을 클릭하면 Branch 목록과 Git History를 볼 수 있고,
우측 하단의 master라고 되어있는 부분을 클릭해도 Branch 목록을 볼 수 있다.
우측 하단의 master는 현재 Branch의 이름을 의미한다.

2) Branch 생성하기

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

또는, Git > Branches > New Branch를 선택하여 새 브랜치를 만듭니다.

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

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

3) Branch 전환하기 (Checkout)

현재 작업하는 Branch에서 다른 Branch로의 이동을 Checkout이라고 한다.

만약에 어떤 기능을 구현하여 Git에 등록했다고 하면, 지금까지 변경사항은 하나의 Branch에만 적용되어있다.
그래서
1) 다른 Branch에 변경사항을 적용하려고 하거나,
2) 현재 Branch가 아닌 다른 Branch에서 작업을 하려고 할 때
Branch를 전환한다.

다른 브랜치로 전환하려면, Git > Branches에서 원하는 브랜치를 선택하고 Checkout 옵션을 사용합니다.
또는 Branch 목록에서 master를 우클릭 또는 클릭 후 checkout을 클릭하면 develop Branch에서 master Branch로 이동된다.

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

- Smart Checkout / Force Checkout

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

4) 브랜치 병합하기 (Merge)

브랜치에서의 작업이 완료되면, 해당 브랜치를 다른 브랜치(예: master 또는 main)에 병합할 수 있습니다. 병합하려는 브랜치로 전환(Checkout)한 다음, Git > Merge를 선택하고, 병합할 브랜치를 지정합니다.

회사나 팀 프로젝트에서는 병합하기 이전에 Pull Request를 작성해서 변경사항을 공유하고 리뷰를 요청한다. 그리고 최종적으로 결정권자가 merge를 결정한다.

예시 1)

Develop 브랜치 쪽으로 master 브랜치를 합치는 예시

예시 2)

master 브랜치에 kang 브랜치를 합치려고 하면 master 브랜치로 checkout을 하고 merge 'kang' into 'master' 를 하면 된다.

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

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

다양한 옵션을 선택할 수 있습니다.

--no-ff : fast-foward 관계라 하더라도 강제로 merge commit을 생성하고 병합
--ff-only : 대상 브랜치가 fast-foward 관계에 있는 경우 새로운 커밋을 생성하지 않음
--squash : 강제 병합
-m : 메시지 포함
--no-commit : 메시지 미포함
--no-verify : 머지 커밋 메시지 무시

6. Conflict 해결

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

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

충동 해결하고 다시 push를 해야한다.

7. Git 로그(Log)=히스토리(History) 확인

  • 커밋 로그 확인: IntelliJ IDEA의 Version Control 창에서 Log 탭을 선택하면, 프로젝트의 커밋 히스토리를 시각적으로 볼 수 있습니다. 이 로그를 통해 커밋 사이를 탐색하고, 브랜치의 히스토리를 확인하며, 다양한 브랜치 간의 관계를 이해할 수 있습니다. (또는 Git > Show Git Log )

  • 변경 사항 비교: Log 탭에서 특정 커밋을 선택하면, 해당 커밋과 이전 커밋 간의 변경 사항을 비교할 수 있는 Diff 창이 열립니다. 이를 통해 변경된 코드를 세밀하게 검토할 수 있습니다.

    이 단계를 통해 IntelliJ IDEA에서 Git을 사용한 기본적인 버전 관리 방법을 익힐 수 있으며, 프로젝트의 소스 코드 관리를 효과적으로 수행할 수 있습니다.

8. PR (Pull Request) 작성 및 관리 📤

IntelliJ IDEA를 사용하여 PR(Pull Request)을 작성하고 관리하는 기능은 협업 중인 프로젝트에서 코드 변경 사항을 공유하고 리뷰를 요청하는 중요한 과정입니다. IntelliJ IDEA는 GitHub, GitLab과 같은 주요 Git 호스팅 서비스와 통합되어 있어, IDE 내에서 직접 PR을 생성하고 관리할 수 있습니다. 이 과정을 통해 개발자는 코드 변경 사항에 대한 피드백을 받고, 최종적으로 메인 프로젝트 브랜치에 병합될 수 있도록 합니다.

GitHub/GitLab과 IntelliJ IDEA 연동

  • 계정 연결: 먼저, IntelliJ IDEA에 GitHub 또는 GitLab 계정을 연결해야 합니다. File > Settings (Windows/Linux) 또는 IntelliJ IDEA > Preferences (macOS)로 이동한 다음, Version Control > GitHub 또는 Git > Accounts에서 계정을 추가합니다.
  • 인증: 인증 방법으로는 OAuth, Personal Access Token(PAT), 또는 SSH 키가 있습니다. IntelliJ IDEA는 이 과정을 안내하여 계정 연동을 완료할 수 있게 돕습니다.

Pull Request 설정


Settings > Branches로 이동합니다.


위처럼 체크하고 코드 리뷰할 인원을 설정해줍니다.
(위에서 체크한 수 만큼의 인원이 승인해줘야 branch를 merge할 수 있습니다)

pull request 형성하기



위 버튼을 누르면 B→A로 병합을 요청하는 pull request를 형성 할 수 있습니다.


[1] 어느 branch에서 어느 branch로 merge할 지 정해줄 수 있습니다!

[2] 해당 branch 에 대한 내용을 작성합니다

[3] 어떤 팀원에게 review를 받을 지 정할 수 있어요.
(설정하지 않으면 팀원 중 누구에게나 review를 받아서 merge 할 수 있습니다)


위에서 정해준 수 만큼 code review가 없다면 merge를 할 수 없습니다…!

코드 리뷰 후 병합하기

코드 리뷰는 코드를 작성한 사람이 아닌 다른 팀원들이 해야 하는 부분입니다.

팀원들끼리 코드를 공유하고 수정해야 할 사항을 남길 수도 있어요

위처럼 팀원이 코드리뷰 후 approval을 해주면 아래 버튼으로 merge를 할 수 있습니다.

merge를 완료하였다면 Delete branch버튼을 통해 branch를 삭제할 수 있습니다.

PR 생성하기

  • 변경 사항 커밋 및 푸시: PR을 생성하기 전에, 변경 사항을 로컬 브랜치에 커밋하고 해당 브랜치를 원격 리포지토리에 푸시해야 합니다.
  • PR 생성: IntelliJ IDEA에서는 GitHub 또는 GitLab 프로젝트에 직접 PR을 생성할 수 있습니다. VCS > Git > Create Pull Request를 선택하여 PR 생성 창을 엽니다. 여기서는 대상 브랜치 선택, PR 제목 및 설명 입력, 리뷰어 지정과 같은 옵션을 설정할 수 있습니다.
  • 리뷰 요청: PR이 생성된 후, 지정된 리뷰어에게 코드 리뷰를 요청할 수 있습니다. 리뷰어는 코드 변경 사항에 대한 코멘트를 달거나, 승인 또는 요청 사항을 제출할 수 있습니다.

PR 검토 및 머지 과정

  • PR 검토: 리뷰어는 PR에 대해 코멘트를 남기고, 변경 사항에 대한 의견을 제시할 수 있습니다. 개발자는 이 피드백을 바탕으로 코드를 개선하고 추가 커밋을 PR에 포함시킬 수 있습니다.
  • 머지: 모든 리뷰어의 승인을 받고, 빌드 및 테스트가 성공적으로 완료되면, PR을 메인 브랜치에 머지할 수 있습니다. IntelliJ IDEA에서는 GitHub 또는 GitLab 웹 인터페이스를 통해 머지 과정을 완료할 수 있습니다.

PR 후 청소 작업

  • 브랜치 정리: PR이 머지된 후, 더 이상 필요하지 않은 기능 브랜치는 삭제할 수 있습니다. IntelliJ IDEA에서는 머지된 브랜치를 쉽게 정리할 수 있는 옵션을 제공합니다.

IntelliJ IDEA에서 PR을 작성하고 관리하는 과정은 코드 품질을 높이고, 팀 내에서 효과적인 코드 리뷰 및 협업을 가능하게 합니다. IDE 내에서 직접 이러한 과정을 관리할 수 있다는 것은 개발자에게 큰 이점을 제공하며, 프로젝트의 생산성과 효율성을 향상시킵니다.

github 홈페이지에서 pull Request 하기

기능 개발 후 해당 브랜치에서 git push 명령어를 입력하고, github repository로 이동하면 다음과 같은 알림이 뜹니다. 이때 Compare & pull request 버튼을 클릭합니다.
(만약 뜨지 않는다면 git push가 제대로 됐는지 확인하시거나, Pull requests 탭을 클릭 후 New pull request 버튼을 클릭해보세요)

base 브랜치 & compare 브랜치 확인

아래 이미지에서 1번 붉은 박스 부분을 자세히 보시면 base: main 이라고 되어있습니다. PR을 생성할 때 base 브랜치main으로 설정한다는 의미인데요. base 브랜치란 수정된 코드가 합쳐질 최종 브랜치라는 의미입니다.

아래 이미지의 2번 붉은 박스 부분을 보시면 compare: feature/login 이라고 되어있는데요. 수정된 코드가 있는 브랜치를 의미합니다. compare라고 되어있는 이유는 base 브랜치인 main과의 비교 대상이기 때문입니다.

다시 정리하자면, feature/login(compare) 브랜치에서 수정된 코드를 main(base) 브랜치로 합치기 위한 PR을 생성할 것이라는 뜻입니다.

  • 제목 입력 및 Create pull request 클릭

  • PR 생성 완료 및 file changed 탭 클릭 후 변경된 코드 확인 가능

  • 문제가 없을 경우 merge 하기 (Merge pull request)

  • PR (Pull request)는 왜 만들어야 하나요?
    PR을 생성하면 github repository에서 코드를 최종적으로 합치기 전 (main으로 merge하기 전) 코드를 점검할 수 있습니다.

merge 전 Conflict 해결

아래 이미지의 붉은 박스처럼 Merge pull request 버튼이 비활성화 됐죠? 이처럼 merge 전에 Conflict가 났다면 Github에서 merge를 할 수 없습니다.

Conflict가 발생했다는 건 팀원이 같은 위치의 같은 코드를 수정했기 때문에 최종적으로 어떻게 변경해야 하는지 Github에서 물어보는 것입니다. 이럴 경우 어떻게 해결하는지 확인해볼게요!

  1. 기능 개발한 브랜치에서 git pull origin main 명령어로 메인 코드를 가져온다.
    $ git pull origin main
  1. conflict 난 코드 확인

    좌측 아이콘(Source Control) → 파일 선택 → conflict난 부분 코드 확인

  1. conflict 가 발생한 코드 수정

    최종적으로 바꾸고 싶은 코드로 변경합니다.

  1. 다시 git add & git commit & git push 명령어를 입력합니다.
    $ git add .
    $ git commit -m "메세지"
    $ git push origin <브랜치명>
  1. merge 한다.

    이제 Merge 버튼이 활성화됐네요!

9. 그 외의 명령어

1) 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는 내려받을 소스가 있다고 알려주는 기능이라고 볼 수 있다.

2) Update Project...

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

3) Commit 취소

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

(1) Undo Commit
[ Undo Commit ] 명령을 수행하면 선택한 커밋을 제거 및 커밋 기록까지 삭제합니다.
즉, 작업 트리(Working Tree)를 이전 상태로 되돌리게 됩니다. 해당 명령은 로컬 저장소(Local Repository)에서만 커밋을
취소하는 명령이며 원격 저장소(Remote Repository)에는 영향을 주지 않습니다.

인텔리제이 - Undo Commit 기능을 git 명령어인 git reset 명령어를 사용하여 구현됩니다.

(2) Revert Commit
위 [ Undo Commit ]을 보면 커밋을 취소함과 동시에 커밋 내역까지 삭제하는 것을 볼 수 있습니다.
반면, [ Revert Commit ] 은 기존 커밋 내역을 그대로 유지하는 동시에 해당 커밋을 되돌리기 위해 새로운 커밋을 생성합니다.
쉽게 말하자면 커밋 취소할 내역을 그대로 남기고, 해당 커밋의 작업 내역을 취소(이전 상태로 되돌리는 것)하는
새로운 커밋을 생성한다고 말할 수 있습니다.
물론 작업 트리(Working Tree)에도 Revert Commit을 사용한 기록에 남게 됩니다.

인텔리제이 - Revert Commit 기능을 git 명령어인 git revert 명령어를 사용하여 구현됩니다.

출처: https://backendcode.tistory.com/323 [무작정 개발:티스토리]

4) Rollback

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

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

참고

https://its-easy.tistory.com/27

profile
코딩일기장

0개의 댓글