자주 쓰는 Git Command를 정리해보자

2022. 8. 25. 21:00IT/Concept

반응형

협업에 있어 깃 사용은 필수다.

 

혼자서 프로젝트를 진행할 때는 굳이 왜 사용하는지 모를 것이다.

그저 포트폴리오로써 git commit을 남기기 위해 사용할 뿐..

 

하지만 프로젝트의 규모가 커지면서 자연스레 깃과 깃허브의 중요성을 깨닫게 된다.

(그러니 일단 협업을 해보자! 그래야 배운다.)

그렇다면 자주 사용하는 깃 명령어들을 간단히 정리하는 시간을 가져보자.


1. Branch strategy

우선 브랜치 전략이란 무엇인지 알아보자.

 

브랜치란 독립적으로 어떤 작업을 진행하기 위한 개념이다. 필요에 의해 만들어지는 각각의 브랜치는 다른 브랜치의 영향을 받지 않기 때문에 여러 작업을 동시에 진행가능하다. 예를 들어 프로젝트를 진행하는 과정에서 어떤 기능을 추가하고 싶으면 '브랜치를 딴다'. 몸통에서 갈라진 가지 프로젝트에서는 온갖 실험을 마음껏 진행해도 몸통에, 즉, 메인 프로젝트에 영향을 주지 않는다.

 

협업 프로젝트를 진행할 때, master 브랜치가 바로 우리의 메인 프로젝트를 보관하는 몸통이라 할 수 있다. 이 master 브랜치에서 develop, release 등의 브랜치가 필요에 따라 갈라져 나온다. 보통 develop 브랜치에서부터 여러 사람이 각자 자신이 구현하는 기능별로 새로운 branch를 만들고, 기능을 구현한 후, 다시 develop 브랜치에 합친다. 이때 보통 develop 브랜치에 합치기 전에 PR, 즉 pull request를 보내고, 합치고자 하는 코드에 대한 코드 리뷰가 진행된다. develop브랜치에서 관리되는 우리의 서비스가 어느정도 성숙해지면 release 브랜치에서 테스트를 진행하고, 테스트를 통과하면 버전1.0 등으로 넘버링되어 master 브랜치에 올라가게 된다. 예시 그림으로 살펴보면 다음과 같다.

 

 

2. 작업 시작

이제 작업을 시작해보자.

 

1. 로컬에서 폴더를 하나 생성하고 그 폴더를 깃으로 관리 시작하자; git init

2. 해당 폴더에 원격저장소(GitHub, GitLab 등)에 있는 프로젝트와 연결하자; git remote add origin [원격 저장소 주소]

3. 원격저장소 내용물을 로컬 폴더에 집어넣자; git pull

4. develop 혹은 약속된 브랜치로 이동해 거기서부터 내 브랜치를 만들자; git switch [브랜치명]

 

git init
git remote add origin [원격 저장소 주소]
git pull
git switch [브랜치명]

 

3. 브랜치 만들고 기능 구현

1. 기능 구현을 위한 브랜치를 만들자; git branch [브랜치명]

2. 중간 중간 변경사항은 stage에 올리자; git add .

3. 커밋하자; git commit -m "[커밋메세지]"

4-1. 내 브랜치에 push하자; git push

4-2. 브랜치가 로컬에만 존재하고 원격저장소에는 존재하지 않는 상황이라면 다음 명령을 실행하자; git push --set-upstream origin [브랜치명]

 

git branch [브랜치명]
git add .
git commit -m "[커밋메세지]"
내 브랜치에 push하자; git push
git push --set-upstream origin [브랜치명]

 

4. Git commit message convention

commit 메세지를 작성할 때, 약속하면 협업에 도움이 되는 컨벤션이 있다.

단순히 커밋 메세지를 남기는 대신, 해당 커밋이 어떤 작업을 수행했는지 categorizing하는 것이다.

자주 사용되는 컨벤션은 다음과 같다.

 

FEAT:    새로운 기능을 추가할 경우
FIX:     버그를 고친 경우
STYLE:   코드 포맷 변경, 간단한 수정, 코드 변경이 없는 경우
REFACTOR: 프로덕션 코드 리팩토링
DOCS:    문서를 수정한 경우(eg. Swagger)
RENAME:  파일 혹은 폴더명 수정 및 이동
REMOVE:  파일 삭제
CHORE:    빌드 업무 수정(eg. dependency 추가)

 

5. 브랜치 합치기

1. 기능 구현이 완료되면 develop 혹은 약속된 브랜치로 이동하자; git switch [약속된 브랜치명]

2. 약속된 브랜치에 기능 구현이 완료된 브랜치를 합치자; git merge [합치고 싶은 브랜치명]

3. 다른 사람이 진행한 작업을 먼저 pull 받자; git pull

4. 내 브랜치를 합치자; git push

 

git switch [약속된 브랜치명]
git merge [합치고 싶은 브랜치명]
git pull
git push

 

6. 브랜치 지우기

기능 구현이 완료되어 합쳐진 브랜치는 이제 지워주자.

 

1. 로컬 브랜치 삭제; git branch -d [브랜치명]

2. 원격저장소 브랜치 삭제; git push origin —delete [브랜치명]

 

git branch -d [브랜치명]
git push origin —delete [브랜치명]

 

7. 핵심 요약

  1. push 전에는 pull 먼저
  2. 브랜치는 기능 단위로
  3. git commit message convention을 활용
  4. 코드 리뷰를 적극적으로

더 자세히 알아보기

https://techblog.woowahan.com/2553/

 

 

 

 

-학습을 진행하며 남기는 지식 포스팅-

 

-부족한 설명이 있다면 부디 조언 부탁드립니다-

 

 

 

 

이 포스팅은 쿠팡 파트너스 활동의 일환으로,

이에 따른 일정액의 수수료를 제공받습니다

반응형

'IT > Concept' 카테고리의 다른 글

Dart의 var, final, const  (53) 2023.07.27
Golang으로 Python의 collections.Counter 구현하기  (77) 2023.02.13
Javascript의 클로저란?  (0) 2022.08.11
Javascript의 프로토타입이란?  (0) 2022.08.08
자바스크립트의 this  (2) 2022.08.04