팀 프로젝트 진행 당시 프로그래밍을 처음 접하시는 팀원 분들과 프로젝트를 진행했었다.
비록 나 또한 비전공자지만 최대한 도움을 주고자 협업을 위한 git 메뉴얼을 만들어 팀원 분들에게 조금이라도 도움을 주고 싶은 마음이 있었다.
저번에 github desktop
을 사용한 GUI환경으로 메뉴얼을 작성했었다.
하지만 아무래도 개발자는 CLI로 git을 다루는게 더 멋있는 것 같아(더 많은 기능 사용도 +) 저번에 작성해둔 GUI 버전 말고 CLI 버전으로 새로 만들었다.
읽으시다 틀린 부분이 있다면 언제든지 지적해주시면 너무 감사할 것 같습니다.🤗
gitflow를 따른 메뉴얼입니다.
$ 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
명령어를 치면 내가 생성했던 브랜치들이 로컬과 리모트에 예쁘게 올라가있는 것을 볼 수 있다.
# 내가 어떤 branch에 있는지 확인
$ git branch
# 지정 파일 stage에 올리기
$ git add <파일 경로>
# 번경된 모든 파일 올릴 경우 git add .
# 커밋하기
$ git commit -m "커밋 메시지 적기"
# 이후 작업이 다 끝났다면 원격 저장소에 올리기
$ git push origin < 작업한 브랜치 명 >
커밋을 작업 단위로 크지 않게 하는 것이 좋다고한다.(나의 잔디도 풍성 아주 좋아)
각자의 feature 브랜치에서 작업을 끝내면 dev 브랜치에 합치는 작업을 통해 협업을 하는 모든 사람들이 변경사항을 알 수 있게 한다.
깃허브 프로젝트 레포지토리로 이동
레포지토리 상단의 Pull requests 탭 클릭
New pull request 클릭
사진의 1번은 내가 작업했던 브랜치로, 2번은 내가 합칠 브랜치, 확인 후 3번 탭 클릭
4-1. 만약 바뀐 내역이 없다면 아래와 같이 나온다. push를 했는지 확인하자
팀원이 Pull Request를 날리고 dev에 합쳐진 경우 내 로컬에 있는 dev 브랜치를 갱신해주기
# dev 브랜치로 이동(아직 작업을 하는 도중이였다면, 4-1번 작업 먼저)
$ git checkout dev
# 변경사항 받아오기(만약 충돌이 있어났다면!.. 추후 추가 예정..)
$ git pull origin dev
# 원래 브랜치로 돌아와서 dev내용 합치기
$ git checkout "나의 브랜치"
$ git merge dev
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 # 전체 삭제
내가 처음 프로젝트를 공부하면서 공부해야될 것들은 첩첩산중인데 어느정도 하니까 깃이라는 친구가 괴롭혔던 것이 생각이 났다. 그래서 팀원들을 일단 명령어의 의미가 무엇인지 인지만 하고 템플릿대로 따라 간다면 협업을 하는데 큰 무리가 없다고 생각하여 이렇게 깃 사용 메뉴얼을 만들게 되었다.
이 메뉴얼로 팀프로젝트를 진행하면서 혹시나 내가 틀린 부분이 있는지 진땀을 빼면서 작성했지만 덕분에 깃이란 친구와 더 친해질 수 있었던 계기가 되었던 것 같다.(그런데 내가 자주 사용하는 것 외에 기능은 너무 어렵다...)
앞으로 더 꾸준히 공부하며 배워나가야겠다. 화이탱~!😁