Git에서 HEAD란 현재 속한 브랜치의 가장 최신 커밋
-> 각 가지의 맨 끝단
-> switch로 branch를 바꿀때마다 각 branch의 HEAD에 위치하게 됨
checkout으로 커밋 앞뒤로 이동하기
git checkout HEAD^
reset, revert와 다르게 commit을 건드리지 않고 과거 시점으로 가는 것!
delta 1st commit으로 switch 하였지만 왜 SourceTree에서는 가장 최신 커밋이 아닌데 HEAD로 표시할까
-> 새로 익명의 브랜치를 만들어 와있음을 유추할 수 있음
여기서 다시 delta-branch의 끝단으로 갈려면 switch를 사용해야 함
브랜치의 특정 커밋 지점으로 와서 분기를 하고싶은 경우
git switch -c gamma-branch
변경 사항 만든 후 commit 햇을 때
beta-branch에서 gamma-branch가 분기한것을 볼 수 있다
해시 코드 알아올 필요 X
git reset HEAD(원하는 단계) (옵션)
예를 들어 delta-branch 에서 두단계를 리턴하고 싶은 경우
git reset --hard HEAD~2
두 단계가 사라진것을 볼 수 있음
fetch
: 원격 저장소의 최신 커밋을 로컬로 가져오기만 함
pull
: 원격 저장소의 최신 커밋을 로컬로 가져와 merge 또는 rebase
fetch는 일종의 가상에 브랜치를 추가(변화들을 다 받아옴)
-> 그러나 pull때 처럼 merge나 rebase 하진 않음
-> pull의 과정에 fetch가 포함되어 있는 것
-> fetch는 보통 내용을 살펴보고 싶은 경우 사용
원격 저장소에서 변경사항을 만든 후, fetch를 하였을 때 커밋이 추가되었다고 표시 됨
-> 물론 이 경우 변경 사항은 반영이 안됨
이후 git checkout origin/main할 시 변경 내용이 반영되어있음
-> 하지만 이를 main branch에 merge나 rebase 한 것이 아닌 일종의 미리보기
-> 반영할려면 main 브랜치로 이동후 pull
원격에서 branch 추가 후 git fetch
수정사항은 당연히 반영 X
git checkout origin/new-branch로 수정사항 확인
원격 저장소에 새로 생긴 브랜치를 로컬에 받아오고 싶은 경우
-> git switch -t origin/new-branch