깃(Git)
은 컴퓨터 파일의 변경사항을 추적하고 여러 명의 사용자들 간에 해당 파일들의 작업을 조율하기 위한 분산 버전 관리 시스템이다.
스테이지(stage)
는 버전으로 만들 파일이 대기하는 곳이다.
스테이징 영역(stageing area)
라고도 부른다.
저장소(repository)
는 스테이지에서 대기하고 있던 파일들을 버전으로 만들어 저장하는 곳이다. '리포지토리'와 '저장소'라는 용어는 동일하다
= 스테이지
와 저장소
는 눈에 보이지 않고 깃을 초기화했을 때 만들어지는
.git 디렉터리안에 숨은 파일 형태로 존재하는 영역 이다.
파일이 스테이지에 있다면 버전을 만들수 있다. 깃에서 버전을 만드는 것을 '커밋(commit)한다' 라고 한다. 커밋할 때는 어떤 변경사항이 있었는지 메시지를 함께 기록해야한다. 이를 커밋 메시지
라고 한다.
커밋을 공동(원격)저장소에 올릴 때 푸시(push)
한다고 한다.
다른 사람이 개발한 코드(커밋)을 내 컴퓨터에 받아오는 것을 풀(pull)
이라고 한다
브랜치
는 나뭇가지 라는 뜻이다.버전 관리 시스템에서 나무가 가지에서 새 줄기를 뻗듯 여러 갈래로 퍼지는 데이터 흐름을 가리킨다. 한 저장소에서 다른 개발자와 같이 작업을 할때 사용한다.
깃으로 버전 관리를 시작하면 기본적으로 master
라는 브랜치가 만들어진다. 사용자가 커밋할 때마다 master
는 최신 커밋을 가리킨다.
master
브랜치에서 뻗어 나오는 새 브랜치를 만드는 것을 '분기(branch)한다'
라고 한다.
새 브랜치에서 원하는 작업을 다 끝냈다면 새 브랜치에 있던 파일을 원래 master브랜치에 합칠 수 있다. 이렇게 분기했던 브랜치를 master
브랜치에 합치는 것을 '병합(merge)한다'
고 한다.
: 풀 리퀘스트
란 병합 요청 편지이다. 병합하기 전에 다른 개발자들에게 리뷰나 컨펌을 받고 싶을때 사용한다.
: 다른 사람이 만든 오픈소스에 기여하고 싶지만 푸시 권한이 없을때 포크를 사용하여 저장소 전체를 내 계정에 복제한 뒤, 내 계정의 저장소에 커밋 + 푸시 후 원본 저장소로 풀 리퀘스트를 보낸다.
자신의 컴퓨터에서 작업한 뒤 그 컴퓨터 안에 커밋을 저장했다.
이 저장소를 '지역 저장소(local repository)'
라고 한다.
만약 실수로 지역 저장소를 삭제한다면 내용이 다 사라져 버린다.
이렇게 지역 저장소에만 저장하는 것은 안전하지 않기 때문에 작업하는 컴퓨터가 아닌 다른 곳에 저장 공간을 마련해야 한다.
깃에서는 지역 저장소와 원격 저장소(remote repository)를 연결해서 버전 관리하는 파일을 쉽게 백업할 수 있다.
원격 저장소
는 지역 저장소가 아닌 컴퓨터나 서버에 만든 저장소를 말한다.
원격 저장소를 지역저장소로 똑같이 가져오는 것을
'복제한다'
고 하거나 '클론(clone)'
또는 '클로닝(cloning)'
이라고 한다.
페치(fetch)
는 '불러오다, 가져오다'라는 뜻이다.
풀
은 원격 저장소의 커밋을 가져와서 무조건 지역 저장소와 합친다면
페치
는 원격 브랜치에 어떤 변화가 있는지 그 정보만 가져온다.
다른 사람이 수정한 소스를 한번 더 훑어보고 지역 저장소와 합치고 싶다면 페치를 사용하여 커밋을 가져와 지역 저장소와 합치면 된다.
🌊참고 : 지옥에서 온 문서 관리자 깃&깃허브 입문
https://milooy.wordpress.com/2017/06/21/working-together-with-github-tutorial/ 를 공부하고 정리한 내용입니다.