깃허브 협업 사용 메뉴얼

Woosang·2022년 2월 8일
1
post-thumbnail

깃허브 협업 메뉴얼

TMI

팀 프로젝트 진행 당시 프로그래밍을 처음 접하시는 팀원 분들과 프로젝트를 진행했었다.

비록 나 또한 비전공자지만 최대한 도움을 주고자 협업을 위한 git 메뉴얼을 만들어 팀원 분들에게 조금이라도 도움을 주고 싶은 마음이 있었다.

저번에 github desktop을 사용한 GUI환경으로 메뉴얼을 작성했었다.

하지만 아무래도 개발자는 CLI로 git을 다루는게 더 멋있는 것 같아(더 많은 기능 사용도 +) 저번에 작성해둔 GUI 버전 말고 CLI 버전으로 새로 만들었다.

읽으시다 틀린 부분이 있다면 언제든지 지적해주시면 너무 감사할 것 같습니다.🤗

메뉴얼

gitflow를 따른 메뉴얼입니다.

1. 초기 셋팅(clone, branch 생성)

$ git clone < repository url >

$ git branch # 로컬 브랜치 목록 조회 및 현재 브랜치 확인
$ git branch -r # 원격 브랜치 목록 조회
$ git branch -a # 모든 브랜치 목록 조회

# git branch < 생성하고 싶은 브랜치 명 >
# git flow에 따르기 위한 dev 브랜치 먼저 생성
$ git branch dev 

# 위에서 생성한 dev 브랜치로 이동
$ git checkout dev 

# 본인이 작업할 브랜치 생성
$ git branch < featureBranch >
# ex) git branch feature_main

# 본인이 작업할 브랜치로 이동
$ git checkout < 생성한 featureBranch 명 >

# 로컬에 생성한 branch 리모트에 올리기
$ git push origin < 생성한 banch 명 >

이제 다시 git branch -a 명령어를 치면 내가 생성했던 브랜치들이 로컬과 리모트에 예쁘게 올라가있는 것을 볼 수 있다.

2. 원격 저장소에 작업한 것들 올리기(add, commit, push)

# 내가 어떤 branch에 있는지 확인
$ git branch

# 지정 파일 stage에 올리기
$ git add <파일 경로>
# 번경된 모든 파일 올릴 경우 git add .

# 커밋하기
$ git commit -m "커밋 메시지 적기"

# 이후 작업이 다 끝났다면 원격 저장소에 올리기
$ git push origin < 작업한 브랜치 명 >

커밋을 작업 단위로 크지 않게 하는 것이 좋다고한다.(나의 잔디도 풍성 아주 좋아)

3. Pull Request 보내기

각자의 feature 브랜치에서 작업을 끝내면 dev 브랜치에 합치는 작업을 통해 협업을 하는 모든 사람들이 변경사항을 알 수 있게 한다.

  1. 깃허브 프로젝트 레포지토리로 이동

  2. 레포지토리 상단의 Pull requests 탭 클릭

  3. New pull request 클릭

  4. 사진의 1번은 내가 작업했던 브랜치로, 2번은 내가 합칠 브랜치, 확인 후 3번 탭 클릭

4-1. 만약 바뀐 내역이 없다면 아래와 같이 나온다. push를 했는지 확인하자

  1. 아래 사진의 Create Pull request 버튼은 클릭해 Pull request를 날려준다.

4. 원격 저장소 변경 시 내용 불러오기(pull, merge)

팀원이 Pull Request를 날리고 dev에 합쳐진 경우 내 로컬에 있는 dev 브랜치를 갱신해주기

# dev 브랜치로 이동(아직 작업을 하는 도중이였다면, 4-1번 작업 먼저)
$ git checkout dev

# 변경사항 받아오기(만약 충돌이 있어났다면!.. 추후 추가 예정..)
$ git pull origin dev

# 원래 브랜치로 돌아와서 dev내용 합치기
$ git checkout "나의 브랜치"
$ git merge dev

4-1. 작업 도중 다른 branch로 이동해야되는 경우(stash)

git stash를 사용하면 modify된 파일들과 stage에 올라가있는 파일만 stash로 이동하게 된다. -> 다음 편히 git add 이후에 stash 하자

$ git add . # 작업하던 모든 친구들 stage에 올리기

# 아래 두개의 명령어 친구들 중에 한개 선택 (stash에 저장하는 명령어)

# git stash와 똑같지만 stash가 여러개인 경우 헷갈리는 것을 방지하기 위해 설명 달아주기
$ git stash save < 임시로 저장할 친구의 설명을 적어주세요> 
$ git stash # 이렇게 해도 무방합니다!

$ git stash list # 내가 임시로 저장한 친구 잘있는지 확인

# dev에서 볼일 다 보고 원래의 브랜치에 dev 변경사항 반영 후(merge한 후)

$ git stash pop # 가장 최근에 임시 저장한 친구 꺼내오기(반영 및 삭제)

# 위의 처럼 pop을 사용한 것이 아래의 두 명령어를 합친 것!
$ git stash apply # 가장 최근 임시 저장한 친구 반영
$ git stash drop # 가장 최근 임시 저장한 친구 삭제


########
# stash 명령어 정리
$ git stash # 저장하기

$ git stash save [description] # 설명 추가하면서 저장하기

$ git stash list # stash 리스트 보여주기
# stash@{0}: WIP on master: 049d078 added the index file
# stash@{1}: WIP on master: c264051 Revert "added file_size"
# stash@{2}: WIP on master: 21d80a5 added number to log <- 이런식으로 stash의 목록을 보여줍니다.

$ git stash apply # 가장 최근 stash 가져와 적용 (stash에서 삭제는 안된다고 합니다!)
$ git stash apply --index # staged된 상태까지 적용하고 싶은 경우

$ git stash drop  # 가장 최근 stash 내용 삭제
$ git stash drop stash@{숫자} # 해당하는 친구 삭제

$ git stash pop # 위에 있는 apply와 drop을 합친 친구 -> 가장 최근 stash 내용 적용 및 삭제

$ git stash clear  # 전체 삭제

참고자료

회고

내가 처음 프로젝트를 공부하면서 공부해야될 것들은 첩첩산중인데 어느정도 하니까 깃이라는 친구가 괴롭혔던 것이 생각이 났다. 그래서 팀원들을 일단 명령어의 의미가 무엇인지 인지만 하고 템플릿대로 따라 간다면 협업을 하는데 큰 무리가 없다고 생각하여 이렇게 깃 사용 메뉴얼을 만들게 되었다.

이 메뉴얼로 팀프로젝트를 진행하면서 혹시나 내가 틀린 부분이 있는지 진땀을 빼면서 작성했지만 덕분에 깃이란 친구와 더 친해질 수 있었던 계기가 되었던 것 같다.(그런데 내가 자주 사용하는 것 외에 기능은 너무 어렵다...)

앞으로 더 꾸준히 공부하며 배워나가야겠다. 화이탱~!😁

0개의 댓글