Git - branch
branch
branch 명령어
git branch --decorate
하면 현재 어떤 브랜치를 사용중인지 확인 가능git checkout branch명
하면 워킹디렉토리 파일 내용도 변경git log --oneline --decorate --graph --all
- oneline : 한줄로 보여주기
- decorate : 현재 사용중인 브랜치 보여주기
- graph : 그래프 보여주기
- all : 모든 브랜치 log 보여주기
branch merge
1 | git checkout master |
- hotfix 브랜치를 master 브랜치랑 merge
git branch -d hotfix
merge 후 필요 없으니 브랜치 삭제
1 | C2<-C4(matser) |
1 | git checkout master |
- Fast-forward 처럼 최신 커밋으로 이동하는게 아니라 합친 결과를 새로운 커밋으로 만들고 브랜치가 그 커밋으로 이동한다.
1 | C4<-C6(master) |
- 마무리는
git branch -d issue53
branch merge conflict
- master 브랜치, issue53 브랜치에서 같은 파일을 수정한 경우 충돌
1 | <<<<<<< HEAD |
- ======= 위쪽은 HEAD 버전(master)
- 아래쪽은 issue53
- 해결방법은 새로 작성, 위쪽(HEAD), 아래쪽(issue53) 중 선택해야 한다.
- 수정 후 <<< ==== >>> 이런 부분들은 삭제
- 해결 후
git add
- Merge 한 것을 커밋
git commit
하면 아래 메시지 나온다.
1 | Merge branch 'issue53' |
- commit message 를 상세히 기록한다.
manage branch
git branch
: 브랜치의 목록 보여줌git branch -v
: 마지맛 커밋 메시지도 함께 보여줌git branch --merged
: 머지 된 브랜치 보여줌
1 | git branch --merged |
*
기호가 붙어 있지 않은 브랜치는git branch -d
로 삭제해도 되는 브랜치다. 그 이유는 이미 다른 브랜치와 Merge 했기 때문git branch --no-merged
: 머지 되지 않은 브랜치 보여줌
1 | git branch --merged |
testing
브랜치는 아직 Merge 하지 않은 커밋을 담고 있기 때문에git branch -d
로 삭제되지 않는다.
Colaborator
- Collaborator 가 아니면 fork 떠서 자기스페이스로 복사한 후 push -> 원래 저장소로 보내기 이것이 바로 Pull request 라고 한다.
- Collaborator 면 해당 repo 에서 바로 push 가능