Git& Github란?

백준호·2022년 10월 20일
0
post-thumbnail

형상관리도구란?

형상관리(Version Control Revision Control)툴이란 소프트웨어 버전 관리 하기위한 도구이다. 이를 통해 개발자들은 협업을 할 시 누가 무엇을 수정했는지도 알 수 있고, 코드를 병합하거나 수정된 소스를 추적할 수도 있다. 또 소스를 버전 별로 관리할 수 있어 개발할 때 실수로 소스를 삭제하거나, 수정하기 이전으로 돌아가야되는 경우 되돌릴 수 있다. 형상관리툴에도 여러 타입이 존재한다. 가장 대표적으로 CVS,SVN,GIT이 존재하는데 오늘은 가장 대중적으로 쓰이는 분산저장소 타입의 GIT을 알아보자.

왜 Git인가?

중앙서버에 소스코드와 히스토리를 저장하는 SVN와 달리 GIT은 소스코드를 여러 개발자 PC와 저장소에 저장할 수 있는 분산형 관리 시스템이다. 따라서 중앙서버 장애에 민감하지 않고, 로컬 저장소를 이용해 중앙저장소의 복원도 가능하다. 또한 사본을 로컬에 가지고 있기 때문에 SVN에 비해 훨씬 빠르다. 깃의 장점은 아래와 같다.

 - 소스코드를 주고 받을 필요 없이, 같은 파일을 여러 명이 동시에 작업하는 병렬 개발이 가능

  • 즉 브랜치를 통해 개발한 뒤, 본 프로그램에 합치는 방식(Merge)으로 개발
  • 분산 버전관리이기 때문에 인터넷이 연결되지 않은 곳에서도 개발을 진행할 수 있으며, 중앙 저장소가 날라가버려도 다시 원상복구가능
  • 팀 프로젝트가 아닌, 개인 프로젝트일지라도 GIT을 통해 버전 관리를 하면 체계적인 개발이 가능해지고, 프로그램이나 패치를 배포하는 과정 간소화(pull을 통한 업데이트, patch 파일 배포) 

##GitHub 핵심용어

  1. 저장소(Repository): 저장소를 의미한다. 본인 pc의 local과 원격 저장소인 remote 가 있다.

  2. Commit: 어떠한 주제의 변경사항들을 주석과 기록한다.

  3. Add: 커밋하려는 파일들을 묶는다. "스테이지(Stage)에 올린다."라고 말하기도 한다.

  4. Push: 로컬 저장소의 커밋들을 원격 저장소에 업로드한다.

  5. Clone: 원격 저장소의 데이터를 로컬 저장소에 복사한다.

  6. git brunch: 독립된 working directory를 의미한다. 참여자마다 독립된 브랜치로 작업을한다. 대표적인 전략으로 gitflow전략이 있다.

  7. merge: 2개의 브랜치에서 작업한 내용을 하나로 합친다. 현재 브랜치를 기준으로 병합된다

GitFlow전략?

깃플로우(git-flow)전략은 소프트웨어 소스코드를 관리하고 출시하기 위한 브랜치 관리전략 중 하나이다. Vicent Driessen이 제안했으며 git의 workflow 디자인에 기반한 브랜칭 모델이다. git-flow에서 사용하는 브랜치의 종류는 5개이며, 크게 유지되는 메인브랜치(master,develop)과 보조브랜치(feature,realease,hotfix)로 나뉜다. 이밖에 관리전략은 github flow, gitlab flow 등이 존재한다.

-Master : 제품으로 출시되는 브랜치
-Develop : 다음 출시 버전을 개발하는 브랜치
-Feature : 기능을 개발하는 브랜치
-Release :이번 출시버전을 준비하는 브랜치
-Hotfix :출시 버전에서 발생한 버그를 수정하는 브랜치

[git -flow 예시]

Git GUI 소스트리

GUI는 윈도우를 사용하는 우리에게 아주 친숙한 방식이다. Jira로 유명한 Atlassian에서 만든 Git GUI 로써 Git 을 보다 편리하게 사용할 수 있도록 도와준다.

아래 블로그에서 자세한 사용법을 알 수 있다.
https://www.biew.co.kr/entry/GIT-GUI%EC%86%8C%EC%8A%A4%ED%8A%B8%EB%A6%ACSourceTree-%EC%84%A4%EC%B9%98%EB%B0%A9%EB%B2%95-1%ED%8E%B8


이밖에 더욱 자세한 사용방법은 아래 유튜브를 통해 알 수 있다.
https://www.youtube.com/watch?v=-27WScuoKQs

profile
남들이 다 아는 걸 모를 수는 없지!

0개의 댓글