[Git] Commands Summary - branch
Commands Summary - branch
List branch
- 현재 repository의 local branch를 보여준다.
$ git branch
- 현재 repository의 모든 branch를 보여준다.
-a
,-all
: local branch 뿐만 아니라 remote branch도 보여준다.
$ git bracnh -a
- 현재 branch에 merge된 branch를 보여준다.
$ git branch --merged
- 현재 branch에 merge되지 않은, 파생된 branch를 보여준다.
$ git branch --no-merged
Create branch
- 새로운 branch 를 생성한다.
$ git branch ${BranchName}
- Remote에 local의 branch를 추가(
-u
:--set-upstream
)
$ git push -u origin ${BranchName}
Delete branch
- 특정 local branch 제거(
-d
,--delete
)
(-D
: Shortcut for--delete --force
)
$ git branch -d ${BranchName}
- 특정 remote branch 제거
$ git push -d origin ${BranchName}
Rename branch
- branch 이름 변경 옵션:
-m
(--move
)
(-M
: Shortcut for--move --force
)
Case #1
$ git branch -m ${BranchName} ${NewBranchName}
Case #2
- 이름을 변경하고자 하는 branch로 이동
$ git switch ${BranchName}
-m
옵션을 활용하여 현재 branch 이름 변경
$ git branch -m ${NewBranchName}
Delete renamed branch from remote
이름이 변경된 branch를 remote에 적용시키고 싶은 경우,
아래의 명령어와 같이 remote에 변경된 이름의 새로운 branch를 업데이트(추가)한다.
$ git push -u origin ${NewBranchName}
이후, 변경되기 전의 이름을 가진 branch를 remote에서 제거한다.
$ git push -d origin ${OldBranchName}
Command: switch (Recommended)
${BranchName}
으로 branch를 이동한다.
$ git switch ${BranchName}
Options
-c
(--create
): branch를 새로 생성과 동시에 해당 branch로 이동-C
(--force-create
):-c
와 동일하지만, 새로 생성하려는 branch 가 이미 존재할 경우, reset 시키고 이동한다.(Override)
Command: checkout
${BranchName}
으로 branch를 이동한다.
$ git checkout ${BranchName}
Options
-b
(--create
): branch를 새로 생성과 동시에 해당 branch로 이동-B
(--force-create
):-b
와 동일하지만, 새로 생성하려는 branch 가 이미 존재할 경우, reset 시키고 이동한다.(Override)
Command: merge
- 현재 branch에 특정 branch를 merge
$ git merge ${BranchName}
- Case1. Fast-forward merge: merge commit을 만들지 않고, merge된다.
- Case2. Three-way merge: merge commit이 자동으로 생성된다.
Options
--no-ff
: Fast-forward merge는 merge commit을 만들지 않지만,
해당 옵션을 주게되면 merge commit을 만들 수 있다.
명령어를 실행하면 commit을 할 때와 동일하게 commit message를 입력할 수 있으며,
완료하게되면 merge commit이 생성된다.
Merge Conflict
Abort
- Merge 취소
$ git merge --abort
Manually
- 수동으로 conflicted 파일을 수정한 뒤,
git add
명령어로 staging area로 이동시킨다.
$ git add ${ConflictedFile}
- 이후,
git merge --continue
또는git commit
명령어로 merge conflict를 해결하여 commit한다.
$ git merge --continue # 또는 git commit
Mergetool
직접 설정한 mergetool을 활용하여 merge conflict 해결
$ git mergetool
keepBackup Option
mergetool 사용시, *.orig
라는 이름으로 backup 파일이 자동으로 생성된다.
자동 생성을 원치않는다면 다음과 같이 설정이 필요하다.
$ git config --global mergetool.keepBackup false
또는 gitconfig 파일에 아래의 값을 추가한다.
[mergetool]
keepBackup = false
p4merge (Link)
gitconfig 파일에 아래내용 추가
[merge]
tool = p4merge
[mergetool "p4merge"]
path = ${p4merge_path}
- MacOS:
${p4merge_path}
:/Applications/p4merge.app/Contents/MacOS/p4merge
vscode (Link)
gitconfig 파일에 아래내용 추가
[merge]
tool = vscode
[mergetool "vscode"]
cmd = code --wait $MERGED
Leave a comment