프로젝트에서의 독립적인 타임라인
repository를 생성하면 만들어지는 기본 branch
git에서의 현재 위치(branch reference)
해당 branch가 가리키고 있는 위치
branch가 가리키는 위치가 아닌 특정 commit을 가리킬 수 있음
git branch // 모든 branch 표시
git branch test // test라는 branch 생성
git switch test // test라는 branch로 이동
git checkout -b test // test라는 branch 생성하고 이동
git switch -c test // test라는 branch 생성하고 이동
git branch -d test // test라는 branch 삭제
git branch -D test // test라는 branch 강제 삭제
git branch -m test // 현재 있는 branch의 이름을 test로 변경
git checkout a1b2c3d // head가 a1b2c3d라는 hash를 가진 commit을 가리키게 변경
git checkout head~3 // head가 head 위치에서 3개 전 commit을 가리키게 변경
git switch - // 원래 있던 branch로 복귀
git checkout head a.txt // a.txt을 head가 위치한 상태의 a.txt로 변경
git checkout -- a.txt // a.txt을 head가 위치한 상태의 a.txt로 변경
git restore a.txt // a.txt를 head가 위치한 상태의 a.txt로 복원(변경)
git restore --source head~2 a.txt b.txt // a.txt, b.txt를 head 위치에서 3개 전 commit의 모습으로 복원
git restore --staged a.txt // a.txt를 staging area에서 제거(파일은 보존)
git reset a1b2c3d // a1b2c3d commit으로 회귀하고 이후 commit 삭제(변경사항은 유지)
git reset --hard a1b2c3d // a1b2c3d commit으로 회귀하고 이후 commit 삭제(변경 유지 안함)
git revert a1b2c3d // a1b2c3d를 취소하는 commit 생성(이후 commit 유지, 변경 삭제)