Git, GitHub

지송현·2023년 1월 12일
0

개발 일반

목록 보기
1/5

Git, GitHub란?

  • 로컬에서 관리되는 형상 관리 도구 중 하나이다. 소스코드를 효과적으로 관리할 수 있게 해주는 공개 소프트웨어이다. Github는 클라우드 방식으로 관리되는 버전 관리 시스템이다.

Git Flow란?

Git Flow란 어떤 기능이 아니라 Vincent Drissen이 시작한 Git 사용 방법론이다.

Git Flow는 총 5가지의 브랜치를 사용해서 운영 한다.

  • master: 기준이 되는 브랜치로 제품을 배포하는 브랜치이다.
  • develop: 개발 브랜치로 개발자들이 이 브랜치를 기준으로 각자 작업한 기능들을 병합(merge)한다.
  • feature: 단위 기능을 개발하는 브랜치로 기능 개발이 완료되면 develop 브랜치에 합친다.
  • release: 배포를 위해 master 브랜치로 보내기 전에 먼저 QA(Quality Assurance, 품질 검사)를 하기위한 브랜치이다.
  • hotfix: master 브랜치로 배포를 했는데 버그가 생겼을 때 긴급 수정하는 브랜치이다.

헷갈리는 것들

Fork, clone 차이

Fork

fork는 다른 사람의 레포에서 내가 어떤 부분을 수정하거나 추가하고 싶을 때 해당 레포를 내 레포로 복제하는 기능이다. 그 레포지토리는 원본, 즉 다른 사람의 레포지토리와 연결되어 있다.

연결되어 있다는 것은 원본 레포에 변화가 생기면 그것 역시 그대로 반영할 수 있다.

반대로 내가 해당 레포에서 작업한 것을 원본 레포에 반영하고 싶다면 pr을 올리면 된다. 원본 레포의 관리자로부터 승인을 받으면 merge되어 반영된다.

Clone

fork는 '원격 레포 -> 내 원격 래포'였다면 clone은 '원격 레포 -> 로컬'이다. fork와 같이 원본 레포에 연결되어 있지 않다. 단순히 복사하는 기능인 셈이다.

Pull, Fetch 차이

Pull

pull은 원격 서버에서 변경된 사항들을 내려받아 로컬 브랜치와 자동으로 병합한다.

Fetch

fetch는 변경된 사항들을 임시 브랜치로 내려받는다. 그러나 이후 자동으로 현재 브랜치와 병합하지 않는다. 내 브랜치에 적용하려면 merge해야한다.

단순히 변경 내용을 확인하고 싶거나 병합하기전 확인이 필요한 경우 사용하면 될 것 같다.

Cherry-pick

cherry-pick은 다른 브랜치에 있는 커밋을 선택적으로 현재 브랜치에 적용시킬 때 사용한다.

git cherry-pick <commit_hash_1> <commit_hash_2>... 여러개 한번에 가능

Rebase

추가...

profile
백엔드 개발자

0개의 댓글