ABOUT ME

Today
Yesterday
Total
  • Visual Studio Code 에서 Git 사용법
    Etc 2021. 6. 25. 14:19

     

     

    Given : 동작 시작 전 상태, 전제조건
    When : 동작
    Then : (예상)결과

     

    Checkout Branch

    GIVEN, WHEN - master/origin 우클릭 후 Checkout Branch…​


    WHEN - 생성될 브랜치명 작성 후 Checkout Branch

    THEN - 결과

    Git Graph OUTPUT

    > git checkout -b topic origin/master GIT

    Delete Remote Branch

    GIVEN,WHEN - origin/HEAD 우클릭 후 Delete Remote Branch…​


     

    WHEN - 원격 브랜치 origin/HEAD 를 삭제 하시겠습니까? Yes, delete

    THEN - 결과 Graph

    Git Graph OUTPUT

     

    > git push origin --delete HEAD
    > git branch -d -r origin/HEAD

    Merge into current branch

    GIVEN, WHEN - master/origin 우클릭 후 Merge into current branch…​


    WHEN - 아무 옵션도 체크하지 않고 Merge


    THEN - Git 결과 그래프


    fast-forward 된 것 확인
    Git Graph OUTPUT

     

    > git merge master

    Merge into current branch - fast-forward 가능해도 커밋 생성(no-ff)

    GIVEN, WHEN - master/origin 우클릭 후 Merge into current branch…​


    WHEN - fast-forward 체크 후 merge가 가능하더라도 새 커밋 생성


    Create a new commit even if fast-forward is possible
    번역 : fast-forward 가 가능하더라도 새 commit 생성

    THEN - 결과 Graph 확인


    Merge 와 동시에 Commit 이 생성된 것 확인

    Git Graph OUTPUT  

    > git merge origin/master --no-ff

    documentation

     

    번역 : `--no-ff`를 사용하면 `merge`가 `fast-forward`로 해결 될 수 있는 경우에도 모든 경우에 `merge commit`을 만듭니다.


    Merge into current branch - 여러개의 커밋 하나의 커밋으로 만들기(Squash)

    GIVEN, WHEN - hotfix 브랜치 우클릭 후 Merge into current branch…​

    WHEN - Squash Commits 선택한 뒤 merge

    THEN - Git 결과 Graph

    부모가 하나인 commit이 생성 됨. merge commit으로 만들지 않음
    Git Graph OUTPUT
    > git merge hotfix --squash
    > git diff-index HEAD
    > git commit -m "Merge branch 'hotfix'"
    progit squash

    Merge into current branch - 병합만 수행하고 커밋 만들지 않기(no commit)

    GIVEN, WHEN - hotfix 브랜치 우클릭 후 Merge into current branch…​

    WHEN - No Commit 선택한 뒤 merge

    THEN - Git 결과 Graph

    병합만 수행하고 Commit 되지 않은 것 확인
     

    Git Graph OUTPUT

     

    > git merge 31d4baa9559a2b77245ef2e488372f35d1311b46 --no-commit

    Merge into current branch - 병합만 수행하고 커밋 만들지 않기(squash, no commit)

    GIVEN, WHEN - hotfix 브랜치 우클릭 후 Merge into current branch…​

    WHEN - Squash Commits, No Commit 선택한 뒤 merge

     

     

    THEN - Git 결과 Graph

     

     

    병합만 수행하고 Commit 되지 않은 것 확인

     

     

    Git Graph OUTPUT

    > git merge hotfix --squash --no-commit

     

    한단계 더 나아가기 : 여기서 Commit을 하게 되면 어떤 결과가 나올까?

    GIVEN - 병합만 수행하고 Commit 되지 않은 상태

    WHEN - Staging Area에 올라와 있는 파일 모두 커밋

    이미지 없음. 현재 상태에서 Commit만 수행하면 됨.

    THEN - Git 결과 Graph

    Squash Merge 된 것 확인

    git revert
    documentation
     

     

    번역 : 하나 이상의 기존 커밋이 주어지면 관련 패치가 도입한 변경 사항을 되돌리고 이를 기록하는 새 커밋을 기록합니다. 이를 위해서는 작업 트리가 깨끗해야 합니다.(HEAD 커밋에서 수정하지 않음)

    GIVEN - g commit 의 변경 사항

    g 커밋의 변경사항은 g 파일을 추가된 내용만 있음
     

    WHEN - g commit 에서 Revert 실행

    THEN - Git 결과 Graph 및 변경 사항

    Revert 된 Git 결과 Graph

     

     
    Revert 한 뒤의 변경 사항 : g 파일이 삭제 됨

    Revert 하고자 하는 Commit의 변경사항을 삭제한다.

    # git revert --no-edit <commit checksum>
    > git revert --no-edit dd131a2306a935879f7da863ecf0392639644096

    댓글

Designed by Tistory.