I'm FanJae.

[20260518] Git 용어 정리 본문

Unity/Unity 초격차캠프

[20260518] Git 용어 정리

FanJae 2026. 5. 18. 18:08

0. 시작에 앞서

 

[Git] Git 설치 (Windows)

1. Git에 대하여- 사실 프로그래밍 경험이 있는 사람이라면, Git을 한 번쯤은 들어본 적이 있었을 것이다.- 버전 관리 시스템 중에서 가장 많이 사용되고 있는 프로그램으로 파일 변화를 시간에 따

fanjae.tistory.com

- 해당 포스트 내용을 같이 보면 도움이 될 수 있다.

 

1. 정의

- Git은 대표적인 버전 관리 시스템(VCS, Version Control System)이다.

- 단순히 파일을 저장하는 것이 목적이 아니다.

1. 언제 수정했는가?
2. 누가 수정했는가?
3. 어떤 내용을 수정했는가?
4. 이전 버전과 무엇이 달라졌는가?

- 위와 같은 내용을 기록하고 관리할 수 있다.

- 특히 협업 환경에서 거의 필수적으로 사용된다.


2. 버전 관리 시스템(VCS)이 필요한 이유

- 프로젝트를 진행하다 보면 아래와 같은 Case가 발생한다.

1. 이전 코드로 되돌리고 싶은 경우
2. 여러 사람이 동시에 작업하는 경우
3. 누가 어떤 부분을 수정했는지 확인해야 하는 경우

 

① 예시

// 2개의 수를 더하는 프로그램
int Add(int a, int b)
{
		return a + b;
}

- A가 임의의 코드를 작성하고 있었다고 가정하자.

- 이때, Add()를 변경하여, List 안의 모든 값을 더하는 메서드로 변경하는 작업을 시작했다고 가정하자.

int Add(List<int> data) 
{
    for(int i = 0 ; i < data; i++) // 잘못 짠 상태
    {
		    sum = data[i]; 
    }
    return sum;
}

- 위처럼 프로그램을 잘못 짜서 원래 상태로 되돌리고 싶을 때 git을 사용하면 유용하다.

// 2개의 수를 더하는 프로그램
int Add(int a, int b)
{
		return a + b;
}

- 위와 같이 되돌려준다.


3. Git의 장점

(1) 강력한 개발 생태계

- 현재 가장 많이 사용되는 버전 관리 시스템이다.

- 굉장히 많은 곳에서 사용하기 때문에, 참고할 자료가 많다.

(2) 협업에 강하다.

- 여러 명이 동시에 작업이 가능하다.

- 각자 독립적으로 작업하고, 코드를 합칠 수 있다.

(3) 무료로 사용 가능하다.

- 개인 프로젝트나 학습 용도에서는 무료로 사용할 수 있다.


4. Git vs GitHub

- Git은 버전 관리 시스템 자체를 의미한다.

- GitHub는 Git 기반 원격 저장소 서비스를 뜻한다.

- 물론, Git에 올렸다와 같은 용어로 쓰기도 하는데 그러면, 보통 원격 저장소에 올렸다는 의미로 사용한다.


5. Git 관련 용어

- Git은 파일을 바로 원격 저장소에 올리는 구조가 아니다.
- 내 컴퓨터 안에서 변경 사항을 관리하고, 필요할 때 원격 저장소와 동기화한다.
- 여기서 검은 선을 기준으로 왼쪽은 Local, 오른쪽은 Remote다.
- Local은 내 컴퓨터, Remote는 GitHub와 같은 원격 저장소를 의미한다.


(1) 로컬

① Working Files

- 실제로 내가 파일을 수정하는 작업 공간이다.

- 간단하게 생각하면 내가 수정하고 있는 폴더다.

 

② Staging Area

- 커밋하기 전에 변경 사항을 잠시 올려두는 공간이다.

- 커밋할 때는 보통 기능 단위로 분리해서 올리는데, 이때 특정 파일만 선택해서 올릴 수 있다. 예를들어, 3개의 파일을 수정했다고 가정한다.

Player.cs
Monster.cs
README.md

- 이때, Staging Area에 2개의 파일만 올릴 수 있다.

Player.cs
Monster.cs

- 이와 같은 형태로 이번 커밋에 포함할 변경 사항을 선택적으로 올리는 공간이다.

 

③ Local Repository

- 내 컴퓨터 안에 있는 Git 저장소이다.
- Staging Area에 올린 변경 사항을 커밋하면, 그 변경 이력이 Local Repository에 저장된다.
- 이때 저장되는 것은 단순히 파일 하나가 아니다.

1. 언제 수정했는가?
2. 누가 수정했는가?
3. 어떤 내용을 수정했는가?
4. 이전 버전과 무엇이 달라졌는가?

- 즉, Local Repository내 컴퓨터 안에서 저장된 프로젝트의 버전 기록이다.


(2) Remote

① Remote Repository

- Remote Repository는 GitHub와 같은 외부 서버에 있는 저장소이다.

- 이 Local Repository에 저장된 커밋을 다른 사람과 공유하려면 Remote Repository로 올려야 한다.


6. Push / Pull / Fetch

1) Push

- 로컬 저장소의 변경 사항을 원격 저장소에 업로드 하는 것이다.

- 즉, Local Repository에 있는 변경 사항을 Remote Repository에 업로드 한다.

2) Fetch

- 원격 저장소의 최신 정보를 가져온다.

- 단, 가져오는 것만 하고, 실제 작업 파일을 수정하는 등의 작업은 일어나지 않는다.

3) Pull

- 원격 저장소 변경 사항을 가져오고 실제 작업 파일에도 반영한다.


7. Commit

- 변경 사항을 저장소에 기록하는 작업이다.

- Commit에는 무엇을 수정했는지 설명하는 메시지가 포함되어 있어야 한다.

 

- Commit은 무엇을 수정했는지 분명하게 알아 볼 수 있게 작성해야 하며, 협업과 유지보수를 할 때 매우 중요하다.


8. Branch(브랜치 관련 작업) & Checkout & Merge

① Branch

- 독립적인 작업 공간으로, 브랜치를 사용하면, 여러 기능을 분리해서 작업을 진행할 수 있다.

② Checkout

- 특정 브랜치나 커밋으로 작업 공간을 이동시킨다. 예를 들어, main에서 작업하다가 로그인 기능 개발 브랜치로 이동하거나, 특정 커밋 시점에 버그가 없었는지 확인 하는 작업을 할 수 있다.

③ Merge

- 두 브랜치의 변경 사항을 하나로 합치는 작업할 때 사용할 수 있다. 협업을 진행한 뒤 하나의 코드로 합칠 때 주로 사용한다.
- 서로 다른 브랜치에서 같은 파일의 같은 부분을 수정한 경우, Git은 어떤 내용을 최종 결과로 선택해야 하는지 판단하지 못하는 충돌(Conflicit)이 발생한다. 이를 적당히 잘 합쳐야 한다.


9. .gitignore

- Git으로 관리하지 않을 파일을 지정하는 파일이다.

/Models

- 이와 같이 처리하면, 데이터가 수정되어도 추적 대상에서 제외된다. 


10. 정리

- Git은 대표적인 버전 관리 시스템이다.
- Git은 변경 사항 기록과 협업을 위해 사용한다.
- Repository는 프로젝트와 변경 이력을 저장하는 공간이다.
- Push는 업로드, Pull은 가져오기 및 반영, Fetch는 정보만 갱신한다.
- Branch를 통해 독립적인 작업이 그낭하며 Merge를 통해 합칠 수 있다.
- .gitignore를 통해 불필요한 파일을 관리 대상에서 제외가 가능하다.


 

 
 

'Unity > Unity 초격차캠프' 카테고리의 다른 글

[20260519] C# 정리 ( LINQ )  (0) 2026.05.19
[20260519] C# 정리 ( Lambda Expression )  (0) 2026.05.19
[20260518] C# ( Exception )  (0) 2026.05.18
[20260515] C# ( Event )  (0) 2026.05.15
[20260515] C# ( Func )  (0) 2026.05.15
Comments