1 minute read

시나리오

  1. 오류 및 추가 요구사항이 발생해서 이슈를 생성한다.
  2. 그 이슈를 해결하기 위한 브랜치를 생성한다.
  3. 작업 후, 브랜치를 originpush한다.
  4. push 한 내용을 확인한뒤에 merge 한다.

상세 설명

  1. 자신의 레포에 들어가서 이슈를 생성하고 이슈에 대한 사용자를 선택한다.

    [no-alignment]

  2. 이슈의 번호가 나왔을 것이다. ( 본 예시에서는 #3 이다.) 브랜치를 생성하자.

     git checkout -b feature_#3_gitpost master
     # git branch feature_#3_gitpost master
     # git checkout feature_#3_gitpost
    
  3. 여기서 잠깐! 혹시 깜빡하고 다른 브랜치에서 작업하던걸 옮기고 싶다면 stash를 이용하자

     git stash # 임시저장
     git checkout [branchname] # 원하는 브랜치로 이동
     git stash apply # 임시 저장한 내용 뿌리기
    
  4. 다시 넘어가서~ 해당 브랜치에서 issue에 해당하는 내용들을 수정및 작성한다.

    • git status를 통해 변경된 부분을 확인해볼 수 있다.

      [no-alignment]

    • 수정 내용을 커밋 및 푸쉬 한다.

        git add ./
        git commit -m "add git post"
        git push origin feature_#3_gitpost
      
  5. 그 후에 해당 레포로 들어가서 pull request 작성 및 merge 해준다.

    • 푸쉬 완료후 해당 레포에 들어가면 다음과 같이 compare&pull request 버튼이 생성된다. 이를 눌러 준다!

      [no-alignment]

    • pull request에 내용을 resolved #이슈번호로 작성하면 merge 될 때 issue가 자동으로 닫힌다.

      [no-alignment]

  6. 1인 2역을 맡은채로 설명했지만, 실제로 가면 이런식 일것이다.

     A : 문제 발생! 이슈 투척, B가 이걸 해결하도록!
     B :  이슈가 왔네..
         1. 이슈에 해당하는 브랜치를 파서..
         2. 내용 해결하고 푸쉬한다..
         3. "이렇게 해결했어요~"라는 pull request 작성
     A : 그렇군 그렇다면 merge 해야지...
    
  7. 이제 할일이 다 끝난 브랜치는 삭제해준다.

     # 로컬 삭제
     # 주의! branch를 삭제 하기 위해선 git checkout [other branch]를 통해 해당 브랜치가 아닌 다른 브랜치에 이동해있자.
     git branch -d [branchname]
    
  8. 자신의 master 브랜치에도 변경된 내용으로 업데이트 하고 싶다면..!

     git checkout master
     git pull
    
  9. 추가적으로 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를 삭제한다.

Categories:

Updated: