본문

[2017.11.13] 21. Git VS GitHub VS GitFlow 개념

도입

이번 포스팅에서는 Git, GitHub, GitFlow의 개념을 정리할 예정이다. 이유는 Git을 사용하며 항상 헷갈렸던 부분이었고 정리한 후 헷갈릴 때마다 꺼내볼 예정이다.




Git의 개념

(출처 - https://en.wikipedia.org/wiki/Git)

Git은 컴퓨터 파일의 변화를 추적하는 버전 관리 시스템이다. 

(※ 꼭 소스 코드만 적용되는 것이 아니다. 컴퓨터 파일의 변화 추적이 가능하다. 예를 들어, git을 사용해 가계부를 작성할 수 있다.)


Git의 예제

코드의 변경 사항

Git을 통한 변경 사항 추적(source tree tool 사용)

 




GitHub의 개념

(출처 - https://en.wikipedia.org/wiki/GitHub)

GitHub는 웹 기반의 버전 관리 서비스이다. 주목할 것은 웹 기반이라는 것이다.

그림과 같이 GitHub는 파일의 변경 사항을 웹에 저장하는 저장소이다.


GitHub 예제

Git에서의 변경 사항을 GitHub에 등록했다(웹에 등록했다). 그래서 인터넷을 통해 접근이 가능하고 다른 사용자와 공유도 가능하다.




Git Flow의 개념

Git Flow에 대한 정의는 wiki에 없었다.. 아쉽다.


Git Flow는 Git을 실무에서 효율적으로 사용하기 위한 개념이고 툴이다. (개념이고 동일한 이름의 툴이 있다.)

Git Flow를 사용하는 것은 의무가 아니다. Git만 사용해도 branch도 만들 수 있고 checkout으로 branch를 변경 할 수 있다. 

그러나 이러한 것을 편리하게 도와주는 툴이 Git Flow이다.


Git Flow의 이론

Git Flow이론의 흐름은

1) master branch는 배포용으로 사용하는 branch이고 

2) develop branch는 개발용으로 사용하는 branch이다.

3) develop branch에 직접 개발은 하지 않고 구현해야하는 기능들은

4) future branch로 새로운 branch를 만들어 구현 후 develop branch와 merge한다.

5) 이후 배포 전 develop branch를 release branch로 merge 후 release branch에서 QA(테스트)를 진행한다.

6) 이후 QA에 문제가 없다면 master branch로 merge해 배포한다.

7) 배포 후 갑작스러운 치명적인 문제가 생긴다면 hotfix branch에서 빠른 수정 후 master branch에 merge한다. 

이다.



#git #github #gitflow #차이점 #개념

공유

댓글