팀 프로젝트를 할 때 자주 사용하는 몇 가지 기능들을 정리했다.

맥 기준이며, vs code 터미널과 깃허브 웹페이지를 이용한다.

 

1. 클론

깃허브 레포지토리, 즉 원격 저장소를 로컬에 옮겨오는 것

처음 협업을 시작하면 클론부터 하고 작업을 시작하게 된다.

 

mac 터미널을 열고 명령어로 프로젝트를 저장할 폴더 열기

cd 폴더 경로

 

원하는 폴더에서 클론 명령어 입력

git clone 저장소url

 

 

저장소 url은 깃허브 레포지토리 메인 페이지에서 우측 Code 를 입력하면 나오는 주소를 복사해서 사용하면 된다.

(브라우저 주소창의 URL을 사용하는 것이 아니다!)

 

 

2. 브랜치 생성

협업 시 각자 브랜치를 생성하고 각 브랜치에서 개인 작업을 진행한다.

 

vs code 터미널 bash에서 브랜치를 생성하는 방식은 다음과 같다.

(이하 모든 명령어들은 vs code 터미널 bash 에 입력한다)

 

 - 1 현재 브랜치 체크

git branch

 

브랜치를 체크한다. 팀 내 브랜치 컨벤션에 따라 올바른 브랜치로 이동해주도록 하자

 

 - 2. 원격에서 브랜치 가져오기

git pull branch 브랜치명

 

로컬로 브랜치를 가져온다. 이미 가져왔다면 생략 가능

 

3. 브랜치 이동

git checkout 브랜치명

 

checkout이라는 명령어를 사용해 원하는 브랜치로 이동한다.

 

다시 한 번 1. 브랜치 체크 명령어를 사용하면 브랜치 이동이 잘 됐는지 확인 가능하다.

 

4. 브랜치 생성 및 이동

git checkout -b 생성할브랜치명

 

브랜치 생성과 이동을 동시에 하는 명령어

역시 1. 브랜치 체크 명령어를 사용하면 브랜치 생성 및 이동이 잘 됐는지 확인 가능

 

 

3. 커밋(commit)

진행상황을 저장하는 것을 말한다.

단순한 일반 파일 저장처럼 현재 내용을 저장해주는 것을 넘어, 어느 시점의 모든 진행상황과 변경내역을 저장해주는 기능이다.

 

2가지 단계로 진행한다.

 

git add .

 

변경사항이 있는 모든 파일을 스테이징하는 명령어.

스테이징이란 커밋을 위한 준비 라고 보면 된다. 어떤 파일을 커밋할지 리스트에 추가하는 과정이고, add 만 하면 커밋이 남지 않는다.

 

git commit -m "커밋 메세지"

 

커밋 명령어

방금 스테이징한 파일들을 커밋하여 커밋 기록을 남긴다.

-m 은 메세지 명령어, "커밋 메세지" 는 말 그대로 커밋 메세지이므로 생략할 수 있다.

 

여기까지 하면 로컬에 커밋이 저장된다.

 

 

4. 푸시(push)

git push origin 브랜치명

 

커밋까지는 내 로컬 저장소에서 일어난 일이었다면, 푸시는 그 내용을 원격 저장소에 보내 주는 과정이다.

브랜치별로 푸시할 수 있다.

 

git push 는 명령어

origin 은 원격 저장소 이름(디폴트가 origin, 프로젝트에 따라 다를 수 있다)

 

푸시까지 하면 커밋 내용을 깃허브 레포지토리에서 확인할 수 있게 된다.

 

 

5. 풀 리퀘스트(pull request)

내 브랜치를 생성하여 코드를 작성하고, 커밋, 푸시하여 원격 저장소에 올렸다. 

이제 내 브랜치에서 진행된 변경 내용을 메인 브랜치에 합쳐서 프로젝트의 일부로 만들어야 한다.

그 전에 팀원들에게 코드 리뷰를 요청하는 것이 풀 리퀘스트다.

이렇게 진행해도 될까요? 문제가 없을까요? 라고 묻는 것이라고 보면 된다.

 

푸시까지 한 뒤 깃허브 레포지토리 좌측 상단에서 Pull request 클릭

 

 

우측에서 New Pull Request 클릭

내 브랜치를 선택하고 나오는 입력창에서 제목, 내용에 변경사항을 팀원들이 알아볼 수 있게 작성하면 된다.

 

팀원들의 확인 후 메인 브랜치에 merge 하면 내 코드가 프로젝트에 적용된다.

 

 

6. 풀 (pull)

협업 중엔 나도 코드를 작업하지만, 팀원들도 동시에 작업을 하고 있다. 

팀원이 작성한 코드가 풀 리퀘스트를 거쳐 메인 브랜치에 merge되었다면 내 로컬에도 해당 변경사항의 적용이 필요하다. 

원격의 변경사항을 로컬로 가져와 주는 것이 풀 이다.

git pull origin 메인브랜치명

 

 

7. 브랜치 이동(팀원 풀리퀘스트 확인할 때)

팀원의 풀리퀘스트를 확인할 때는 코드 자체만 읽어서 가능한 경우도 있지만

대부분의 경우 직접 코드를 실행시켜 보고 그 후에 코드 자체를 확인하는 것이 더욱 정확할 것이다.

git fetch origin

 

원격에서 새 브랜치를 가져와서 로컬에서도 팀원이 커밋한 브랜치에 접근 가능하도록 한다.

 

git checkout 브랜치명

 

브랜치명에는 팀원의 브랜치명을 입력한다.

이렇게 하면 로컬에서 팀원의 브랜치로 이동해 해당 브랜치의 최신 커밋을 확인할 수 있다!

 

단, 브랜치 이동을 하기 전에 내 진행상황을 커밋하여 진행상황이 사라지는 불상사를 방지하자.

 

내 브랜치로 돌아올 때 역시 checkout 명령어를 사용하면 된다.

 

+ Recent posts