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 결과 그래프

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 확인

Git Graph OUTPUT
> git merge origin/master --no-ff

번역 : `--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

Git Graph OUTPUT
> git merge hotfix --squash
> git diff-index HEAD
> git commit -m "Merge branch 'hotfix'"

Merge into current branch - 병합만 수행하고 커밋 만들지 않기(no commit)
GIVEN, WHEN - hotfix 브랜치 우클릭 후 Merge into current branch…

WHEN - No Commit 선택한 뒤 merge

THEN - Git 결과 Graph

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

Git Graph OUTPUT
> git merge hotfix --squash --no-commit
한단계 더 나아가기 : 여기서 Commit을 하게 되면 어떤 결과가 나올까?
GIVEN - 병합만 수행하고 Commit 되지 않은 상태

WHEN - Staging Area에 올라와 있는 파일 모두 커밋
이미지 없음. 현재 상태에서 Commit만 수행하면 됨.
THEN - Git 결과 Graph

git revert

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

WHEN - g commit 에서 Revert 실행

THEN - Git 결과 Graph 및 변경 사항


Revert 하고자 하는 Commit의 변경사항을 삭제한다.
# git revert --no-edit <commit checksum>
> git revert --no-edit dd131a2306a935879f7da863ecf0392639644096