ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • git - branch 생성 및 workflow
    git 2023. 6. 5. 13:48
    728x90

    Branch 를 사용하는 이유

    • 공동 작업을 위해서
    • 프로잭트의 여러 기능 중 자신이 만든 기능을 확인하기 위해서

     

     

    branch 만들기

    명령어 : git branch [branch 이름]

    이렇게 git branch를 만들면 나의 main에서 작업했던 내용까지 전부 가지고 오게 된다.

    즉, 브랜치를 생성하면 생성 직 전의 master의 상태를 그대로 복사한다.

    때문에 이전에 master에서 찍히던 log까지 다 반영이 되어 있다.

     

     

     

    branch들 확인하기

    명령어 : git branch

     

     

     

    branch 이동하기

    명령어 : git checkout [ branch 이름 ]

     

     

     

    branch에서 작업한 내용과 main의 상태를 같이 보고 싶다면?

    명령어 : git log [option : --branches]

    보기 좋게 log option들을 섞어서 보여주겠다.

     

     

     

    branch에서 작업을 마쳤다면, 나의 master 브랜치로 합치는 작업을 진행해야 한다.

    명령어 : git merge [ 병합할 branch 이름 ]

    ※  해당 작업을 하기 이전에 먼저 병합의 결과가 반영될 브랜치(여기서는 master 브랜치)로

         이동을 해주고 진행하여야 한다.

     

     

     

    branch의 상태 확인

     

     

     

    반대로 branch에서 master의 내용을 가지고 오고 싶다면, branch에서 merge를 진행하면 된다.

     

     

     

    보통 branch에서 특정 작업을 테스트해보고 메인 브랜치로 코드를 옮기는 작업을 마쳤다면,

    해당 브랜치는 지워주는 작업을 해주는 것이 좋다.

    브랜치 지우기

    명령어 : git branch -d [ 지울 branch 이름 ]

     

     

     

    merge 과정에서 충돌( conflict )이 발생한다면?

    이럴 경우에는 충돌이 발생한 부분을 표시해주고 우리는 협의를 통해서 바꾸면 된다.

    충돌이 발생한 파일을 수정한 이후에, 

    git add [파일]
    git commit -m "conflict :  [file 명] 충돌 처리"   << 이건 자유롭게 하지만, 그래도 다들 알아 볼 수 있도록 작업

     

     

     

    git stash

    브랜치에서 작업을 마치지 않은 상태에서, 만약에 메인 브랜치에서 merge를 해야한는 상황이라면?

    작업을 마치지 않은 파일은 잠시 숨겨두어야 한다.

    만약에 stash를 하지 않고 메인 브랜치로 이동하게 된다면?

    보이는 것처럼 master 브랜치에도 영향을 주게 된다.

    이런 경우에 master에 영향을 주지 않으면서, exp에서의 작업내용을 잠시 감출때에 쓰는 것이 바로 stash 이다!

    branch의 작업내용 숨기기

    명령어 : git stash

    다시 git status 해본다면,

    마스터에도 동일하게 없다

     

     

     

     

    마스터로 이동하여 작업을 수행하고, 다시 완성하지 못한 branch의 작업을 다시 살리려면?

    명령어 : git stash pop

    stash pop 의 동작은 stash 이후에 stash apply + stash drop 의 효과를 가지고 온다.

    즉, 내가 stash 작업을 하게 되면 stash list 에 나의 정보가 계속 저장되게 되는데, stash apply는 내가 이전에 한 작업을 가지고 오더라도 stash list에는 남아 있다. 이를 한번에 처리해주는 것이 stash pop 이다.

     

    그리고, stash 의 대상은 적어도 git add . 를 통해 staging 상태가 된 것들을 stash 할 수 있다!

    'git' 카테고리의 다른 글

    Fork workflow vs Clone workflow  (0) 2023.06.12
    01 - git 명령어 모음(내컴퓨터 위에서 작동 시키기)  (0) 2023.06.03
Designed by Tistory.