[Git] Git 이슈 생성 및 브랜치 작업
시나리오
- 오류 및 추가 요구사항이 발생해서 이슈를 생성한다.
- 그 이슈를 해결하기 위한 브랜치를 생성한다.
- 작업 후, 브랜치를
origin
에push
한다. push
한 내용을 확인한뒤에merge
한다.
상세 설명
-
자신의 레포에 들어가서 이슈를 생성하고 이슈에 대한 사용자를 선택한다.
-
이슈의 번호가 나왔을 것이다. ( 본 예시에서는
#3
이다.) 브랜치를 생성하자.git checkout -b feature_#3_gitpost master # git branch feature_#3_gitpost master # git checkout feature_#3_gitpost
-
여기서 잠깐! 혹시 깜빡하고 다른 브랜치에서 작업하던걸 옮기고 싶다면
stash
를 이용하자git stash # 임시저장 git checkout [branchname] # 원하는 브랜치로 이동 git stash apply # 임시 저장한 내용 뿌리기
-
다시 넘어가서~ 해당 브랜치에서
issue
에 해당하는 내용들을 수정및 작성한다.-
git status
를 통해 변경된 부분을 확인해볼 수 있다. -
수정 내용을 커밋 및 푸쉬 한다.
git add ./ git commit -m "add git post" git push origin feature_#3_gitpost
-
-
그 후에 해당 레포로 들어가서
pull request
작성 및merge
해준다.-
푸쉬 완료후 해당 레포에 들어가면 다음과 같이
compare&pull request
버튼이 생성된다. 이를 눌러 준다! -
pull request에 내용을
resolved #이슈번호
로 작성하면merge
될 때issue
가 자동으로 닫힌다.
-
-
1인 2역을 맡은채로 설명했지만, 실제로 가면 이런식 일것이다.
A : 문제 발생! 이슈 투척, B가 이걸 해결하도록! B : 앗 이슈가 왔네.. 1. 이슈에 해당하는 브랜치를 파서.. 2. 내용 해결하고 푸쉬한다.. 3. "이렇게 해결했어요~"라는 pull request 작성 A : 그렇군 그렇다면 merge 해야지...
-
이제 할일이 다 끝난 브랜치는 삭제해준다.
# 로컬 삭제 # 주의! branch를 삭제 하기 위해선 git checkout [other branch]를 통해 해당 브랜치가 아닌 다른 브랜치에 이동해있자. git branch -d [branchname]
-
자신의
master
브랜치에도 변경된 내용으로 업데이트 하고 싶다면..!git checkout master git pull
-
추가적으로
stash
의 문법은 아래와 같다.-
git stash list 명령을 사용해서 저장한 Stash 목록을 확인할 수 있다.
$ git stash list 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
git stash apply
명령을 실행하여 Stash 내용을 다시 적용할 수 있다.git stash apply stash@{2}
처럼 원하는 Stash 를 골라서 적용하는 것도 가능하다. (이름이 없으면 가장 최근 Stash 적용)git stash apply --index
옵션을 통해서 Staged 상태까지 적용할 수 있다.git stash -u
옵션을 통해서 untracked 파일도 함께 저장할 수 있다.git stash drop stash@{2}
명령을 사용하여 해당 Stash를 제거한다.git stash pop
이라는 명령도 있는데 이 명령은 Stash를 적용하고 나서 바로 스택에서 제거해준다.git stash branch
명령을 실행하면 Stash 할 당시의 커밋을 Checkout 한 후 새로운 브랜치를 만들고 여기에 적용한다. 이 모든 것이 성공하면 Stash를 삭제한다.
-