[Git]git branch 실습
Git(버전관리시스템)
- git의 목적
- 버전관리
- 백업
- 협업
- branch
- 필요에 의해서 작업이 분기되는 현상
예) 개발 진행 중 현재 작업했던 내용을 서버에 반영하기 위해서 여러가지 테스트를 진행하면서 문제점은 없는지 체크하기 위함. main이 되는 작업과 test를 위한 작업을 분기.
branch 만들기
1. 브랜치 목록을 볼 때
git branch
2. 브랜치 생성할 때
git branch "새로운 브랜치 이름"
3. 브랜치 삭제할 때
git branch -d
4. 병합하지 않은 브랜치를 강제 삭제할 때
git branch -D
5. 브랜치를 전환(체크아웃)할 때
git checkout "전환하려는 브랜치 이름"
6. 브랜치를 생성하고 전환까지 할 때
git checkout -b "생성하고 전환할 브랜치 이름"
branch 정보 확인
1. 브랜치 간에 비교할 때
git log "비교할 브랜치 명 1".."비교할 브랜치 명 2"
2. 브랜치 간의 코드를 비교할 때
git diff "비교할 브랜치 명 1".."비교할 브랜치 명 2"
3. 로그에 모든 브랜치를 표시하고, 그래프로 표현하고, 브랜치 명을 표시하고, 한줄로 표시할 때
git log --branches --graph --decorate --oneline
branch 병합
1. A 브랜치로 B 브랜치를 병합할 때 (A ← B)
git checkout A
git merge B
2. 충돌이 일어났을 때
- 충돌이 생기면 "Auto-merging ..." 메시지가 뜸
- git status를 하면 충돌이 일어난 파일 찾을 수 있음
- 충돌 작업을 끝냈다는 것을 git에게 알려줌
git add 'conflicted file name'
stash
stash : 감추다, 숨겨두다의 뜻을 가지고 있음
"다른 브랜치로 checkout을 해야 하는데 아직 현재 브랜치에서 작업이 끝나지 않은 경우는 커밋을 하기가 애매합니다.
이런 경우 stash를 이용하면 작업중이던 파일을 임시로 저장해두고 현재 브랜치의 상태를 마지막 커밋의 상태로 초기화 할 수 있습니다. 그 후에 다른 브랜치로 이동하고 작업을 끝낸 후에 작업 중이던 브랜치로 복귀한 후에 이전에 작업하던 내용을 복원할 수 있습니다. "
1. 하던 작업을 저장하고 가장 최근 commit 상태로 만듦
git stash
2. 저장되어 있는 작업 중 가장 최근 stash를 가져옴
git stash apply
git stash pop //git stash apply + git stash drop
pop은 한번 불러오면 stash 목록에 저장한 시점이 삭제되어있고 apply는 해당 stash를 불러와도 list에 남아있음
3. stash 목록볼 때
git stash list
4. stash 삭제할 때
git stash drop[stash@[숫자]]
4. stash help
git stash --help
# git stash는 명시적으로 삭제하지 않는다면 항상 살아있다.
# git stash는 최소한 버전관리가 되는 파일만 적용된다.
<참고>