| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- Network Programming
- Unity
- git
- BOJ
- Online Judge
- C++
- 독서
- multi-thread
- Toy Project
- System Programming
- PS
- c#
- Data Structure
- Today
- Total
I'm FanJae.
[20260518] Git 용어 정리 본문
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 |