git merge
git
쓰는 꼴
git merge [--no-ff|--squash] <branch>다른 브랜치의 작업을 지금 브랜치로 합칩니다 — --squash는 합침 기록을 남기지 않아 그 브랜치가 나중에도 합쳐지지 않은 것으로 보입니다.
자주 쓰는 옵션
| 옵션 | 뜻 |
|---|---|
| --no-ff | always record a merge commit, even when a fast-forward was possible |
| --ff-only | refuse unless it can fast-forward |
| --squash | stage the combined change without committing or recording a merge |
| --abort | undo a merge that stopped on conflicts |
| --continue | finish after you resolved the conflicts |
| -X ours|theirs | auto-resolve conflicting hunks one way |
| --no-commit | merge but leave the commit to you |
예시
git merge --no-ff feature/loginkeeps the branch visible in history
git merge --abortgets you back to before the conflicted merge
git merge --squash feature/loginone flat change, staged; you still have to commit
되돌리는 방법이 여럿이라 헷갈립니다 — 가리키는 곳을 옮기는 것과 새 커밋을 얹는 것은 다릅니다.
읽는 방법
- 대괄호 [ ]는 넣어도 되고 안 넣어도 되는 자리입니다.
- 점 셋 …은 여러 개를 이어 쓸 수 있다는 뜻입니다.
- 옵션은 대소문자를 가립니다 — -r과 -R이 다른 명령도 있습니다.
자주 묻는 것
Q. git merge은 무엇을 하나요?
다른 브랜치의 작업을 지금 브랜치로 합칩니다 — --squash는 합침 기록을 남기지 않아 그 브랜치가 나중에도 합쳐지지 않은 것으로 보입니다.
Q. 어떻게 치나요?
git merge [--no-ff|--squash] <branch> — 대괄호는 생략할 수 있는 자리입니다.
Q. 옵션은 몇 개나 자주 쓰나요?
여기 정리한 것은 7개입니다. 전체 목록은 man git에 있습니다. 이 명령은 git 갈래입니다.
같이 보는 명령
man 페이지: man git-merge