하나의 코드 관리 흐름 (나뭇가지)
On branch master :마스터 브랜치 위에있다.
마스터 브랜치 : 레포지토리를 만들고 커밋을 하면 자동으로 생기는 브랜치. 즉 기본 브랜치
브랜치를 만들어봅시다.
git branch [이름]
: 브랜치 만들기
git checkout [브랜치이름] : 특정 브랜치로 이동하기
- premium이라는 브랜치 만들기
- premium으로 이동하기
- git status 로 확인하기 'On branch premium'
git branch
: 모든 브랜치 조회
git branch -d [브랜치명]
: 브랜치 삭제
git checkout -b [브랜치명]
: 브랜치 만들면서 동시에 그 브랜치로 이동
git merge [기존 브랜치 이름]
: 현재 위치인 브랜치에 다른 branch를 합친다는 의미
master 에서 cal.js에 divide 함수를 추가하고 git add와 commit 하기
premium에서 cat cal.js를 해서 파일을 확인하기 (여기에는 divide 함수가 없음)
git merge master
라고 입력 commit message 작성하기.
머지를 하다가 충돌 발생!
git merge --abort
: 머지를 시도하기 이전의 상태로 돌아가게됩니다. 머지 취소
- abort : 버리다 취소하다
git status : 현재 conflict가 발생한 파일들의 목록 확인.
처음 로컬레포지토리에서 리모트 레포지토리로 올릴 때 --set-upstream
을해야합니다.
(tracking설정을 위해)
ex ) git push --set-upstream origin premium
git checkout [branch 명] : HEAD를 가리키는 브랜치를 바꾸는 의미
HEAD 는 브랜치를 통해 간접적으로 가리키는 존재(포인터)
브랜치는 커밋을 가리키는 존재(포인터)
merge commit : 헤드가 가리키던 커밋에 다른 브랜치가 가리키던 커밋을 합쳐서 새로운 커밋을 만드는 작업
git reset
git checkout
(이유-> 과거의 특정 커밋에서 새로운 브랜치를 만들고 싶을 때 )