지옥에서 온 관리자 Git
프로그래밍을 공부하는 학생들에게 요즘 거의 필수인 깃허브에 대해 알아보려면 먼저 Git에 대해 알아야 합니다. 리누스 토르발스는 Git을 세상에 처음 소개하면서 '깃은 지옥에서 온 관리자'라고 말했습니다. 그만큼 문서관리에 서툴던 시기에 지옥과도 같은 작업환경에서 벗어나기 위해 만든 시스템이 바로 Git 입니다.
그렇다면 Git으로 무엇을 할 수 있을까요? Git이 제공하는 핵심 기능은 크게 버전관리(Version Control), 백업(Backup), 협업(Collaboration)이 있습니다.
GitHub란?
깃허브(GitHub)는 소프트웨어 개발자들 사이에서 가장 인기 있는 형상 관리(변경 사항을 추적,제어하는 과정) 플랫폼 중 하나입니다. 위에서 설명한 깃(Git)이라는 시스템을 기반으로 하며, 소스코드와 관련 파일을 저장하고 관리할 수 있는 웹 기반 호스팅 서비스를 제공합니다. 깃허브의 주요 특징으로는 버전관리, 협업, 이슈 트래킹, 웹 호스팅, 오픈소스 등이 있습니다.
GitHub Desktop이란?
앞서 설명한 깃 온라인 저장소 서비스인 깃허브에서 제공하는 프로그램으로, 복잡한 깃 사용법(cmd창에 리눅스 명령어 쳐가며 하는 기본방법)을 GUI로 구현한 것입니다. 아래의 사진은 제가 실제로 팀원들과 협업을 하면서 사용했던 깃허브 데스크탑을 캡쳐한 것입니다.
기존의 cmd창을 사용하는 방식보다 훨씬 명시적으로 기능들이 나타나있는 것을 알 수 있습니다. 깃허브 데스크탑의 기능으로는 저장소 생성,복제, 변경사항 관리, 브랜치 관리, 변경 내역 비교, 충돌 해결 등이 있습니다.
깃에서 자주 쓰이는 용어 이해하기
1. 스테이지(Stage)
버전으로 만들 파일이 대기하는 곳입니다. 예를 들어 내가 깃이 관리하는 폴더 내에서 10개의 파일을 수정했는데 4개의 파일만 버전으로 만들려면 이들만 스테이지로 넘겨주면 됩니다. 보통 초보 프로그래머들은 변경사항을 모두 커밋하기 때문에 스테이지와 커밋을 한꺼번에 처리하는 경우가 많습니다.
2. 저장소(Repository)
스테이지에서 대기하고 있던 파일들을 버전으로 만들어 저장하는 곳입니다.
3. 커밋(Commit)
파일이 스테이지에 있다면 버전을 만들 수 있는데 깃에서는 버전을 만드는 것을 커밋(Commit)한다고 합니다. 커밋할 때는 그 버전에 어떤 변경 사항이 있었는지 알려주기 위해 메시지를 함께 기록해주는 것이 좋습니다.
4. .gitignore
버전 관리 중인 디렉터리 안에 관리하지 않을 특정 파일이나 디렉터리가 있다면 .gitignore 파일을 만들어 그 목록을 지정할 수 있습니다.
5. 브랜치(Branch)
변경 사항을 분리하여 관리할 수 있도록 합니다. 각각의 브랜치는 독립적인 작업 공간을 가지며, 변경 사항을 추적하고 병합할 수 있습니다.
6. 푸시(Push)
푸시는 로컬 저장소에서 변경된 코드를 원격 저장소로 업로드하는 작업입니다.
7. 풀(Pull)
풀은 원격 저장소에서 변경된 코드를 로컬 저장소로 가져오는 작업입니다. (실제 팀원들이 작업한 것이 내 로컬 프로젝트로 넘어옴)
7. Fetch Origin
원격 저장소로부터 변경사항을 가져오는 동작을 의미합니다. 위의 pull과 다른 점이 있다면 변경 사항을 로컬 저장소에 반영하지는 않고 단순히 업데이트된 커밋들을 가져옵니다.
'메타버스SW아카데미' 카테고리의 다른 글
Reflection System 이란? (2) | 2023.07.13 |
---|---|
언리얼 프로젝트 폴더관리와 gitignore (2) | 2023.07.05 |