내일배움캠프/GIT

GIT 기능 정리

서보훈 2024. 9. 9. 20:42

GIT 깃은 개발자들이 공동작업을 위해서 만든것으로 버전관리시스템, VCS 의 일종입니다.

깃을 일반적으로 사용할경우, 명령 프롬프트 창을 통해서 사용해야 하지만, 이를 쉽게 사용하기 위해 GitHub 를 사용하여 깃을 편하게 사용할 수 있습니다.

 

깃은 리포지토리(repository) 에 작업물을 저장하게 되는데, 개발자 개인의 리포지토리가 로컬 리포지토리가 되고,

로컬 리포지토리에 작업한것을 원격 리포지토리에 업로드하여 합치게 됩니다.

 

여기서 원격 리포지토리에 작업물을 업로드하는것을 Push 라고 합니다.

 

원격 리포지토리에 작업물을 올리게되면 각 개발자 개인의 로컬 리포지토리와 내용이 달라지고, 원격 리포지토리와 같도록 업데이트를 해주어야합니다.

업데이트를 위해 원격 리포지토리의 내용을 로컬 리포지토리에 받는것을 Pull 이라고 합니다.

 

Push 로컬 -> 원격 업로드
Pull 원격 -> 로컬 다운로드

 

다수의 개발자가 작업을 하다보면, 서로의 작업물간 충돌이 발생하는 경우도 생기게됩니다.

모두가 원본 파일에 작업을 하다보면 충돌 발생시 원본이 손상되어 이전으로 돌리기 어려운상황이 발생할수도 있습니다.

 

이를 방지하기위해서 각 개발자가 복제본을 만들어서 작업을 하고 원본과 병합한 후 Push 작업을 진행하게 됩니다.

 

이 복제본을 Brench, 가지라고 하며 병합하는것을 Merge 라고 합니다.

Merge 작업은 가지끼리도 가능하며, 가지끼리 병합하여 충돌이 없음을 확인하거나, 충돌 내용을 수정하고 해당 내용을 다시 원본에 병합하게 됩니다.

Brench 가지, 원본의 복제본
Marge 가지 병합

 

가지를 생성하면 이 가지를 원격 리포지토리에 등록할 필요가 있고, 이 작업을 Publish라고 하며, 타 이용자들은

Fetch Origin 을 통해 원격 리포지토리의 변경점을 받아올 수 있습니다.

 

Publish 가지 등록, 새로운 내용 등록
Fetch Origin 새로고침

 

로컬 리포지토리에서 작업을 한 뒤 Push 요청을 할 때 변경점을 볼 수 없으면 버전관리프로그램을 사용하는 이유가 없어지게 됩니다.

따라서 로컬 리포지토리에서 Push를 하기전, 변경점을 저장하는 작업이 필요하며 이를 Commit 이라고 합니다

Commit 변경내용 저장

 

깃은 버전관리 프로그램인만큼 Undo, Redo 등의 되돌리기 기능, 이전 버전을 불러오는 기능등이 여러가지 존재하지만, 이번에 배운 내용들 위주로 정리하여 이정도로 마치겠습니다.