Git_용어정리
remote란?
말 그대로 원격 저장소를 뜻한다. 나의 로컬 PC 저장소가 아닌 네트워크상의 다른 위치에 존재하는 Git 저장소이다. 원격 저장소의 목적은 저장소 공유를 통한 협업이다. 원격 저장소는 여러개가 존재할 수 있다. 즉, 우리가 현재 깃허브에서 사용하는 레파지토리가 하나의 remote인 것이다.
Upstream이란?
다른사람의 GitHub의 저장소를 Fork한 경우 내 GitHub가 origin이 되고 처음 fork를 시도한 저장소를 upstream이라고 부른다. origin과 upstream 모두 remote 저장소로서, 보통 origin과 구분하기 위해서 upstream이라는 명칭을 주로 사용한다.
clone이란?
저장소(Repository)로부터 프로젝트를 복제하는 것을 뜻한다.
Master브랜치와 Main브랜치
깃허브에 저장소를 생성하면 기본 default branch가 main으로 설정된다. 그러나 가끔 master브랜치도 자주 보았을 것이다. 이는 인종차별적인 단어 master를 main이라는 다른 단어로 대체한 것으로 master브랜치가 main으로 이름을 변경한것이다.
pull과 fetch의 차이점
pull은 단순 push의 반대성격으로서, 원격저장소의 최신 내용을 로컬 저장소로 가져오면서 병합한다.
fetch는 저장소와 원격저장소의 변경사항이 다를 때 이를 대조하여 최신 데이터로 가지고온다.
간단하게 말하자면 pull은 어떤 부분이 변경된지 모른채 단순히 최신 프로젝트로 병합되는 것이고 fetch는 원래 내용과 바뀐 내용을 알려준다는 차이가 있다.
Merge
각각 다른 작업들을 하던 브랜치들을 하나로 합치는 과정을 뜻한다. checkout 명령어와 함께 사용되며 주로 main브런치에 다른 브런치를 병합시킨다.
Git flow란?
Git으로 형상관리를 할 때 브랜치를 효율적으로 관리하기 위해 사용되는 브랜치 관리 전략이다. 프로젝트의 규모가 커서 팀원이 여러명일 경우 누군가는 A업무를 수행하고 누군가는 B업무를 수행하며 이슈가 발생할 경우 개발코드를 되돌려서 개발을 멈춰야하는 불편함이 있다. 이를 해결하기위해 전략적으로 브런치를 생성하는 것을 말한다.
add, push, commit의 차이
add: 파일추적을 시작하도록 지시
commit: 로컬에서 변경사항 기록(확정된 변경사항을 로컬에 기록&저장)
push: 공유확정
commit과 push가 나누어져있는 이유는 모든 작업을 마쳤을 때만 최종적으로 push를 하게하는 방법으로서 네트워크에 중간저장(commit)을 함으로서 모든 commit을 공유하는 것이 아닌 원할 때만 업데이트(push)하는 깔끔한 방법을 깃이 지향하기때문이다.