https://learngitbranching.js.org/?locale=ko
-> 해당 사이트에서 기본적인 git 명령어를 실습해 볼 수 있다.
- git commit → 버전 추가
- git branch 브랜치 이름 → 현재 내용을 그대로 가져와서 복사한다.
- git branch -D 브랜치 이름 → 브랜치 삭제
- git checkout 브랜치 이름 → 해당 브랜치로 이동한다.
- git checkout -b 브랜치 이름 : 브랜치가 없으면 자동으로 브랜치 생성하고 해당 브랜치로 이동한다.
- HEAD가 해당 브랜치를 가리키도록 한다.
- git merge 브랜치 이름 → 현재 브랜치와 다른 브랜치를 합친다.
현재 내가 있는 브랜치에서 다른 브랜치의 내용을 합친다. 다른 브랜치는 그대로 존재한다.
- git rebase 브랜치 이름 → 현재 브랜치를 rebase할 브랜치 앞으로 끌고와서 합친다??
→ merge 와 rebase 차이를 알고가자.
실습을 하기 위해서 git branch 명령어를 통해서 branch를 생성했는데 위와 같은 에러가 났다. 그 이유는 아직 commit을 한번도 하지 않아서이다.
실습1 - branch
- git init
- touch c0
- git add .
- git commit -m "c0"
- touch c1
- git add .
- git commit -m "c1"
- git branch -b bugFix
- git branch -b bugFix2
- git branch -b bugFix3
- git checkout main
- touch c2
- git add .
- git commit -m "c2"
- touch c3
- git add .
- git commit -m "c3"
- touch c4
- git add .
- git commit -m "c4"
- git checkout bugFix3
- touch c5
- git add .
- git commit -m "c5"
-> git branch "브랜치명"을 통해서 브랜치를 생성한다는 것은 기존의 브랜치를 그대로 복사해서 해당 버전을 따로 관리하겠다라는 뜻이다.
-> 위의 그림을 기준으로 main 브랜치로 checkout 하면 해당 폴더에는 c0,c1, c2, c3, c4 파일이 있고 bugFix3로 checkout하면 c0, c1, c5 파일이 존재한다.
실습2 - merge
- git init
- touch c0
- git add .
- git commit -m "c0"
- touch c1
- git add .
- git commit -m "c1"
- git branch -b bugFix
- touch c2
- git add .
- git commit -m "c2"
- git checkout main
- touch c3
- git add .
- git commit -m "c3"
- touch c4
- git add .
- git commit -m "c4"
- git merge bugFix (main 브랜치 기준에서 bugFix 병합)
-> git log --oneline --graph --all 명령어를 실행한 모습이다.