[Github]레포지토리(repository)/브랜치(branch)/커밋(commit),/푸쉬(push)/풀 리퀘스트(pull request)
오늘은 깃허브를 사용하면서 자주 보게 될 단어들의 의미에 대해 포스팅하고자 한다.
아래의 포스팅과 이어지는 내용이니 참고하면 좋겠다.
[Github]깃허브 가입하기
프로그래밍 공부를 시작하며 유튜브, 블로그 등에서 한 번쯤은 들어봤을 Github! 오늘은 깃허브 가입에 대해 포스팅 하고자 한다. 아주 간단하니 겁말지 말고 시작해보자! 먼저, 아래 링크로 Github
hyemco.tistory.com
오늘 알아볼 용어들은 아래와 같다.
레포지토리, 브랜치, 커밋, 푸쉬, 풀 리퀘스트
레포지토리(repository)
레포지토리, 한국어로는 저장소란 의미로 하나의 프로젝트를 구성하는 데 사용된다.
우리에게 익숙한 것으로 비유하자면 일종의 폴더이다.
"자동차"라는 폴더 안에 자동처 설명서 파일, 관련 사진, 동영상 등을 보관하는 것처럼 폴더, 파일, 이미지, 동영상, 데이터 세트 등 한 프로젝트에 관한 모든 소스 코드를 하나의 레포지토리에서 관리한다.
브랜치(Branch)
한 레포지토리에서 여러 버전을 동시에 작업하기 위해 사용된다.
하나의 레포지토리는 하나의 "master" 브랜치(혹은 main 브랜치)를 가지는데, 여러 버전의 브랜치들이 최종적으로 모이는 브랜치이다.
master 브랜치에서 "pull"을 하여 A 브랜치를 만들고 ver1의 작업을 하고 B 브랜치를 만들어 ver2 작업을 동시에 진행하면서 여러 버전 중 완성본에 포함시킬 버전을 master 브랜치에 합치는 식으로 사용된다.
+ pull은 master 브랜치가 가지고 있던 모든 요소들을 복사해서 새로운 브랜치(가령 A 브랜치)에 가져옴을 뜻한다.
만약, 친구와 내가 협업 중 나는 A 브랜치에서 작업 중인데 친구가 master 브랜치에서 새로운 작업을 했다면 pull을 해서 친구가 변경한 버전의 master 브랜치 요소들을 내가 작업 중인 A 브랜치에 언제든 가져올 수 있다.
커밋(commit)
깃허브에서 저장된 변경 사항을 의미하는 것으로, 수정사항이라고 생각하면 될 것 같다.
"1일 1커밋"을 목표로 둔 사람이 많은데, 그 의미는 매일 조금이라도 코드에 대해 어떤 수정이 이뤄졌음을 뜻한다.
커밋을 하면 커밋 메시지 작성 부분이 있는데, 수정이 이뤄진 이유나 코드에 대한 설명을 적으면 된다. 커밋 메시지 부분을 클릭하면 코드가 수정된 부분을 확인할 수 있다.
푸쉬(push)
어떤 코드 파일을 커밋했다면, 이를 원격 저장소인 레포지토리에 저장시켜주는 것을 푸쉬라고 한다.
즉, 파일을 수정한 뒤 commit message와 함께 commit을 하면 git에서 commit id를 부과하면 일종의 새로운 버전이 생기지만, 레포지토리에 그 버전이 저장된 것은 아니므로 commit한 것을 push해주어야만, 레포지토리에 반영이된다.
풀 리퀘스트(pull request)
커밋 후 수정 사항을 master 브랜치에 반영해줄 것을 요청하는 것을 뜻한다.
풀 리퀘스트 후에는 pull을 해준 master 브랜치와 pull을 받은 브랜치(가령 A 브랜치) 간의 수정 사항을 확인할 수 있는데, 추가된 사항은 초록색(+)으로, 제거된 사항은 빨간색(-)으로 표시된다.
+ 풀 리퀘스트 이후 Merge pull request하여 master 브랜치에 합쳐주는 것이 최종단계이다.
그러므로 Merge pull request 할 때는 늘 신중해야 한다!
요약
레포지토리(repository) - 하나의 프로젝트에 관한 모든 것을 저장하는 곳 = 폴더
브랜치(branch) - 동시에 여러 버전을 진행하기 위한 것 = 분신
* master 브랜치 : 여러 브랜치들이 모이는 브랜치 = 본체
커밋(commit) - 수정 사항을 저장하는 것 = 업그레이드
푸쉬(push) - 수정 사항을 레로지토리에 반영하는 것 = 업로드
풀 리퀘스트(pull request) - 수정한 브랜치를 master 브랜치에 반영하도록 요청하는 것 = 업그레이드 허가 요청


출처
Hello World - GitHub Docs
Introduction GitHub is a code hosting platform for version control and collaboration. It lets you and others work together on projects from anywhere. This tutorial teaches you GitHub essentials like repositories, branches, commits, and pull requests. You'l
docs.github.com