ezinc 가이드 문서
Search posts...
  • Home

Categories

  • All Posts13
  • 클립리포트5
  • Ezworks3
  • Git2
  • 문서 작성 가이드3
Git•2026년 5월 7일

Git 가이드 - 인텔리제이 커뮤니티

Git이란?

Git은 프로젝트의 여러 인원이 동시에 작업을 진행하고 코드의 변경 이력 추적과 이전 버전으로 복원을 할 수 있도록 하는 분산형 버전 관리 시스템입니다.


Git의 용어

  • Repository (저장소)

    Git으로 관리되는 프로젝트의 전체 파일과 변경 이력이 저장되는 공간이며, 로컬(Local) 저장소와 원격(Remote) 저장소로 구분됩니다.

  • Stage, Index (스테이지, 인덱스)

    Git에서 변경사항(Commit)을 생성하기 전 대상이 될 파일을 임시로 저장해두는 영역입니다.

  • Commit (커밋)

    변경된 파일을 저장소에 기록하는 작업입니다. 커밋을 수행하면 해당 시점의 코드 상태가 저장됩니다.

  • Branch (브랜치)

    독립적으로 작업할 수 있도록 생성된 개발 라인입니다.

    기본 브랜치는 main 또는 master 입니다.

    • Local branch (로컬 브랜치)

      로컬 저장소에 위치하는 브랜치입니다.

      해당 브랜치를 원격 브랜치와 연결 할 수 있습니다.

    • Remote branch (원격 브랜치)

      원격 저장소에 위치하는 브랜치 입니다.

    • Remote tracking branch (원격 추적 브랜치)

      원격 저장소의 브랜치 정보를 로컬에 받아온 브랜치 입니다.

  • Merge (병합)

    다른 브랜치에서 작업한 내용을 현재 브랜치로 합치는 작업입니다.

  • Push (푸시)

    로컬 저장소의 커밋을 원격 저장소로 업로드합니다.

  • Pull (풀)

    원격 저장소에서 변경된 커밋을 로컬 저장소로 가져옵니다.

  • Checkout (체크아웃)

    특정 브랜치나 커밋으로 이동하는 작업입니다.

  • Reset (리셋)

    특정 커밋으로 되돌리는 작업입니다.

    로컬 저장소에만 존재하는 커밋을 대상으로 수행할 것을 권장합니다.

    원격 저장소에서 다른 작업자와 공유하는 브랜치에 올린 커밋을 되돌리는 작업은 충돌 위험이 있으니 하지마세요.

  • Revert (리버트)

    특정 커밋의 변경 사항을 되돌리는 작업입니다. 이 작업은 기존 커밋을 유지한 채 새로운 되돌림 커밋을 생성합니다.

  • Fetch (패치)

    원격 저장소에서 변경 사항을 가져옵니다. 로컬 브랜치는 변경되지 않으며 원격 추적 브랜치를 업데이트 합니다.

  • Clone (복제)

    원격 저장소의 내용을 복제하는 작업입니다.

  • Conflict (충돌)

    병합 과정에서 동일한 부분이 각 브랜치간 다르게 수정되었을 때 발생하는 충돌입니다. 수동으로 해결하여야 합니다.

    텍스트 파일은 행 단위로 병합되므로 동일 행 수정시 발생하며, 바이너리 파일은 파일 전체 단위로 병합되므로 동일 파일 수정 시 발생합니다.

저장소 복제하기 - Clone

최초 프로젝트 저장소를 복제하기 위해서 원격 저장소의 주소가 필요합니다.

저장소의 주소는 아래 3가지 프로토콜을 지원합니다.

  • http
  • ssh
  • git

원격 저장소에서 지원하는 프로토콜과 인증 방법을 확보한 후 아래 과정에 따라 진행하면 프로젝트를 로컬로 복제할 수 있습니다.

처음 시작하는 경우에는 곧바로 저장소 복제가 화면에 나타납니다.

프로젝트 -> 저장소 복제를 클릭합니다.

이미 프로젝트가 열린 경우 아래 메뉴를 선택합니다.

파일 -> 새로 만들기 -> 버전 관리에 있는 프로젝트를 클릭합니다.

  1. 복사해둔 저장소 주소를 넣습니다.
  2. 프로젝트를 관리할 경로를 선택합니다.
  3. 복제 버튼을 눌러 프로젝트를 받습니다.

이후 기다리면 복제가 완료됩니다.

다음과 같이 체크하고 신뢰버튼을 눌러 넘어갑니다.

NOTE

백신 제외 목록에 추가하는 이유

개발 시에 빌드를 수행하면 각종 파일이 생성되거나 지워지는 것이 반복됩니다.

이러한 환경에서 백신이 실시간으로 파일을 검사하게 되면 개발 시 속도 저하가 발생하므로 이를 방지하기 위해서 검사 대상에서 제외합니다.

브랜치 생성하기

브랜치는 작업을 나누는 기준입니다.

어떠한 작업을 할 때 브랜치를 분기하여 작업 한 후 주 브랜치(main)로 병합하는 식으로 작업을 합니다.

우리 프로젝트에서는 각 개인별로 하나의 브랜치를 생성하여 작업합니다.

(작업 별로 여러 브랜치로 분기해도 관계없습니다.)

브랜치를 만드는 것은 아무 브랜치(로컬, 원격 추적 모두 가능)에서 오른쪽 클릭하여 '브랜치명'에서 새 브랜치...를 클릭하여 생성할 수 있습니다.

새 브랜치 이름을 정한 다음 생성 버튼을 누르면 생성이 완료됩니다.

새 브랜치 이름은 소문자로 하고 단어 구분은 대시(-)로 하는 것을 권장합니다.

브랜치 체크아웃을 체크하면 생성과 동시에 해당 브랜치로 변경됩니다.

TIP

대부분의 프로젝트는 주 브랜치(main, master)로 바로 커밋하는 것을 막아놓고 있습니다.

main 브랜치를 곧바로 사용하지 마시고 작업 시 새로운 브랜치를 생성하여 작업하는 것을 권장합니다.

브랜치 변경하기 - Checkout

WARNING

이 작업을 수행하기 전 넥사크로 내 열린 탭이나 리포팅 툴 등 쓰기모드로 프로젝트 파일을 읽고 있는 프로그램을 종료하여 주시기 바랍니다.

현재 나의 브랜치는 아래와 같은 곳에서 확인할 수 있습니다.

여기서는 main 브랜치에서 my-branch로 체크아웃을 하는 예제입니다.

순서대로 클릭하면 즉시 브랜치가 변경되고, 작업 중인 파일도 해당 브랜치 상태로 변경됩니다.

내 브랜치 확인하기

내 브랜치는 상단 타이틀바나 하단 Git 영역에 표시된 아이콘으로 확인할 수 있습니다.

변경 사항 저장하기 - Commit

  1. Git 커밋 창을 엽니다.
  2. 커밋할 파일을 선택합니다.
  3. 변경 사항을 간략하게 정리합니다.
  4. 커밋을 마칩니다.

반드시 커밋 메시지를 작성하여 추후 문제가 발생할 시 변경사항에 대한 확인에 도움이 될 수 있도록 해주세요.

변경사항 받아오기 - Fetch

NOTE

인텔리제이는 주기적으로 원격 브랜치에서 이 작업을 수행합니다.

방금 원격 저장소에 올라온 변경 사항을 가져오고 싶은 경우에 수동으로 수행하시면 됩니다.

원격 저장소의 변경사항을 받아오는 작업입니다.

이 작업은 원격 추적 브랜치를 업데이트합니다.

원격 브랜치 받아오기 - Pull

WARNING

이 작업을 수행하기 전 넥사크로 내 열린 탭이나 리포팅 툴 등 쓰기모드로 프로젝트 파일을 읽고 있는 프로그램을 종료하여 주시기 바랍니다.

이 작업은 현재 선택한 로컬 브랜치에 연결된 원격 브랜치의 커밋을 받아오는 작업입니다.

현재 브랜치에 main(다른 브랜치)의 작업내용을 가져오시고 싶은 경우에는 다음 단락의 [main 브랜치의 내용을 내 브랜치로 가져오기](#main 브랜치의 내용을 내 브랜치로 가져오기)를 참고하세요.

브랜치 병합 - Merge

WARNING

이 작업을 수행하기 전 넥사크로 내 열린 탭이나 리포팅 툴 등 쓰기모드로 프로젝트 파일을 읽고 있는 프로그램을 종료하여 주시기 바랍니다.

다른 브랜치를 병합하는 방법입니다.

만약 주 브랜치(main 혹은 master)에 다른 브랜치의 내용을 병합하고자 하는 경우 로컬이 아닌 서버에서 수행하도록 정책이 설정되어 있을 수 있습니다.

이러한 경우 각 프로그램에 따라 아래 메뉴를 찾아서 서버에서 수행하시기 바랍니다.

  • GitLab: Merge Request
  • GitHub, Gitea: Pull Request

아래는 main 브랜치를 my-branch에 병합하는 예제입니다.

우선 현재 브랜치를 my-branch로 변경합니다. 만약 현재 브랜치인 경우 수행할 필요가 없습니다.

main 브랜치를 오른쪽 클릭하여 'my-branch'에 'main' 병합을 클릭합니다.

main 브랜치의 내용을 내 브랜치로 가져오기

WARNING

이 작업을 수행하기 전 넥사크로 내 열린 탭이나 리포팅 툴 등 쓰기모드로 프로젝트 파일을 읽고 있는 프로그램을 종료하여 주시기 바랍니다.

간단하게 원격 저장소의 main 브랜치 내용을 내 브랜치로 업데이트하는 방법은 원격 추적 브랜치의 origin/main을 내 브랜치로 병합하는 것 입니다.

위 사진 처럼 작업을 수행하면 내 브랜치로 원격 추적 브랜치의 작업 내용이 병합됩니다.

원격 저장소로 업로드 - Push

Push는 로컬 저장소의 브랜치를 원격 저장소에 업로드합니다.

푸시할 브랜치를 오른쪽 클릭하여 푸시... 항목을 클릭합니다.

푸시할 커밋과 해당되는 파일을 다시 한 번 확인한 후 푸시 버튼을 눌러 마칩니다.

커밋 되돌리기 - Revert

WARNING

이 작업을 수행하기 전 넥사크로 내 열린 탭이나 리포팅 툴 등 쓰기모드로 프로젝트 파일을 읽고 있는 프로그램을 종료하여 주시기 바랍니다.

작업 내용을 되돌리고자 하는 경우 수동으로 복구하는 방법도 있지만 Git의 Revert 기능을 사용하면 손쉽게 되돌릴 수 있습니다.

커밋 로그에서 되돌리고자 하는 커밋을 오른쪽 클릭 한 다음 커밋 되돌리기를 수행하면 됩니다.

정상적으로 수행되면 그림과 같이 Revert 커밋이 생성됩니다.

이 기능을 잘 활용하기 위해서는 커밋을 만들때. 작업 내용별로 잘 추려내어 커밋을 생성하면 편합니다.

NOTE

Git에서 이미 커밋한 것을 되돌리는 방법이 여러가지가 있으나, 커밋 순서가 꼬일 위험이 크게 없는 Revert만 문서에 소개하였습니다.

특정 시점의 파일을 복원하기

WARNING

이 작업을 수행하기 전 넥사크로 내 열린 탭이나 리포팅 툴 등 쓰기모드로 프로젝트 파일을 읽고 있는 프로그램을 종료하여 주시기 바랍니다.

과거에 작업한 파일을 현재 브랜치로 파일을 가져올 수 있습니다.

Git 히스토리에서 특정 커밋을 선택한 다음 가져오고자 하는 파일을 오른쪽 클릭하여 리비전에서 가져오기를 수행하면 해당 파일을 가져옵니다.

충돌 해결하기 - Conflict

WARNING

이 작업을 수행하기 전 넥사크로 내 열린 탭이나 리포팅 툴 등 쓰기모드로 프로젝트 파일을 읽고 있는 프로그램을 종료하여 주시기 바랍니다.

Git은 로컬에서 여러 개발자들이 동일한 곳을 수정할 경우 충돌이 발생할 수 있습니다.

소스파일과 같은 텍스트 파일은 행 단위로 체크합니다. 동일한 파일을 수정하더라도 다른 행을 수정한다면 충돌이 발생하지 않는다는 뜻이 됩니다.

반면, 이미지 파일과 같은 바이너리 파일은 파일 단위로 체크합니다. 동일한 이름의 다른 파일을 여러 개발자가 커밋했다면 병합 시 충돌이 발생합니다.

이러한 충돌은 개발자 간에 작업 영역과 시점이 충분히 소통되어 같은 곳을 수정하지 않는 것이 가장 좋지만 소통 오류로 인하여 충돌이 발생했을 경우 다음과 같이 해결합니다.

예제

아래와 같은 텍스트 파일이 있습니다.

# Git Sample Project

Hello World!!!

이를 두 사용자가 각각 아래와 같이 수정하였고 동일 행 수정이므로 충돌이 발생합니다.

# Git Sample Project

Hello Java!!!
# Git Sample Project

Hello Kotlin!!!

충돌이 발생하면 이러한 충돌 해결 창이 발생합니다.

1번의 각 내역을 더블 클릭하여 내역별로 어떤 파일을 사용할 지 선택할 수 있습니다.

위 사진과 같이 나타납니다.

혹은 2번의 버튼으로 어떤 내용을 수락할 지 일괄적으로 선택할 수 있습니다.

모든 병합과정을 마치고 병합을 누르면 아래와 같이 히스토리에 새로운 병합커밋이 생기고 병합 작업이 완료됩니다.

← Back to all posts