깃, 깃허브는 우리가 협업할 때 필요한 협업 도구입니다
(어디가서 모른다고 하면 협업 경험 없다고 생각할 수도 있음)
보통 개인 깃허브에만 커밋메세지 넣어서 올려보신분들이 많으실텐데,
그 이상 많은 기능들이 있습니다.
우선 깃과 깃허브를 같은 것으로 생각하는 분들이 많으신데
은 버전관리 도구로
소스코드의 버전을 관리해주고 버전에 따른 히스토리를 만들어가면서 문제가 생기면 롤백하고 다시 릴리즈합니다
쉽게말해 업데이트 한 어플에 오류가 생겼을때 이 깃을 통해 현재 코드를 이전버전(업데이트 전 버전)으로 되돌리고 오류를 고친 후에 재배포합니다
이렇게 버전관리를 하는 것입니다
는 깃을 기반으로 한 온라인 플랫폼 으로
웹 호스팅 서비스까지 가능해 웹상에서 자신의 코드를 업로드하고 공유할 수 있습니다
또한 상대방의 작업물을 받아오는 것도 가능해 협업이 가능합니다
깃허브가 없던 시절엔
사진과 같이 코드를 sns나 메일을 통해 파일별로 복사해서 전달했지만
이제는 깃허브를 활용해 업로드해서 팀원들에게 쉽게 공유하고 협업할 수 있습니다
앞에서 깃은 소스코드의 버전을 관리해준다고 했는데
깃을 통해
등을 할 수 있습니다
버전관리할 때는 여러명이 동시에 코드를 작업하므로
브랜치 를 나눠서 관리합니다
먼저 New를 클릭하여
레포지토리를 만들어 파일을 관리할 저장장소 즉, 브랜치를 생성합니다
브랜치는 하나가 아닌 여러개를 만드는데
브랜치 만드는방법은
git branch -M main
-M은 브랜치가 비어있으면 최종으로 쓰겠다, 안비어있으면 여기에 앞으로 코드 올릴게요 라는 뜻
사진에 있는 feature 브랜치는 개개인이 작업하는 브랜치이며
보통 main - 최종 배포용, develop - 테스트 완료 코드, feature - 개인 작업용 등으로 브랜치를 나눠서 전략적으로 코드를 관리합니다
내 코드를 feature에 올리게되면 PR 을 보내는 것이 가능한데
보내면 팀원이 내 코드를 검토하고 문제가 없으면 merge를 하여 develop에 올립니다
즉, pr을 한다는 것은
내 코드 확인해서 테스트완료브랜치로 올려주세요 ~ 라는 것입니다
main에는 프로젝트 가장 마지막 배포 전 !!에만 올립니다
merge 는 소스코드를 통합하는 것을 말합니다
이 merge가 잘 안되었을경우 코드를 주고 받을때 충돌이 날 수 있으며 이전 작업자와 연락하여 해결해야하는 번거로움이 생깁니다
commit 은
git commit -m "feat: 장바구니 기능 추가"
feature브랜치에 올릴때 위와같이 커밋메세지를 작성해야 올릴 수 있는데
이 커밋은 자신이 한 작업에 대해 팀원들에게 알려주는 것입니다
커밋 메세지를 명확하게 작성하는 것도 중요한데
보통은 feat: 장바구니 기능 추가, fix: 반응형 태블릿부분 수정 등으로 구분합니다
feat은 기능을 추가한 커밋 fix는 수정한 커밋에 사용합니다
또한 코드 올릴 때 api키 같은 깃허브에 올리지 않아야할 파일들은 .gitignore 을 사용합니다
git init
: Git에서 관리 시작할게요
git remote add origin 깃허브주소
: 내로컬 repository와 깃허브 연결
clone시 remote 안해도 자동연결됨
git checkout -b 브랜치명
: 새브랜치 생성
git status
: on branch ~ 가 내 위치가 맞으면 ok (틀리면 git checkout 이동하려는 브랜치명)
git add .
또는 git add 파일명 : 올릴 파일 선택
git commit -m ""
: 커밋메세지
git push origin 브랜치명
: 올려야할 브랜치에 코드 넣기, git push만으로도 가능하지만 브랜치명을 명확하게 말해줌으로써 다른브랜치와 충돌 실수방지 가능
(1회용)
git clone 깃허브주소
: 처음에 프로젝트 통째로 복제할 때 사용
팀원이 만든 저장소를 내 컴퓨터에 처음 가져올 때나 다른 사람 프로젝트를 공부하거나 복제할 때 사용
(자주 작업)
git pull origin 브랜치명
: 다른 사람이 올린 코드를 받아올 때나 매일 작업 전 최신 코드 반영할때 사용
origin 쓰는 이유는 올릴 브랜치를 알려주기위해서
오옹 덕분에 좋은 정보 보고 갑니당