[Git, Github] HEAD, checkout, fetch, pull

JUNHO YEOM·2022년 11월 30일
0

Git, Github

목록 보기
12/27
post-thumbnail

git Head

  • 특정 브랜치의 가장 최신 커밋을 의미합니다.
  • 브랜치라는 가지의 맨 끝 부분이라고 할 수 있습니다.
  • switch로 브랜치를 이동해서 확인해 볼 수 있습니다.

checkout으로 commit 앞뒤 이동하기

HEAD이용해서 이전으로 되돌리기

git checkout HEAD^
  • ^또는 ~: 갯수만큼 이전으로 이동합니다.
  • ex: git checkout HEAD^^^, git checkout HEAD~5

커밋 해시를 이용해서 이전으로 되돌리기

git checkout "커밋 해시"

이동을 한단계 되돌리기(앞으로 돌리기)

git checkout -

이전으로 되돌린 커밋 상태를 다시 앞으로 되돌립니다.

어떤 브랜치의 최상단으로 다시 돌아가기 위해서 git switch "브랜치 이름"을 사용해 줄 수 있습니다.


git checkout으로 브랜치 새로 분기하기

git checkout HEAD^ 명령으로 돌아갈 수 있습니다.
이렇게 돌아간 이후 해당 commit에서 새로운 브랜치를 commit해서 새로운 branch를 만들 수 있습니다.

1. 브랜치 이동하고, 이전으로 되돌아가기

git checkout HEAD^

이전 commit으로 되돌아 갑니다.

2. 코드 변경사항 만들기

새로운 브랜치에 적용할 코드 변경사항을 수정합니다.

3. git add 하기

git add .

변경사항을 staging area에 넣어줍니다.

git commit 하기

git commit -m "메시지 내용"

변경사항을 commit하여 repository에 넣어줍니다.

내가 원하는 commit상태에서 새로운 branch를 생성하였습니다.


HEAD 사용하여 reset하기

git reset --hard HEAD(원하는 단계)

해시를 찾아서 reset하는 방법이 아닌,
HEAD를 이용해서 이전 commit 상태를 찾고,
해당 상태로 reset하는 방법입니다.


fetch vs pull

fetch

원격 저장소의 최신 커밋을 로컬 저장소로 가져옵니다.

pull

원격 저장소의 최신 커밋을 로컬 저장소로 가져와 merge 또는 rebase합니다.
pull은 fetch를 포함하는 명령어입니다.


git fetch 적용 전 살펴보기

원격 저장소에 새로운 commit이 생성 되었다고 가정하겠습니다.
이때, git checkout origin/main으로 적용 전 내용을 살펴봅니다.

git checkout origin/main

다른 커밋 해시로 상태가 변화하는 것을 알 수 있습니다.
하지만 fetch를 해서 최신 커밋을 로컬 저장소로 가져오지는 않았습니다.
따라서 코드의 변화는 없습니다.
git checkout main으로 다시 main 브랜치로 돌아와 줍니다.


git fetch 적용한 후 살펴보기

git fetch 실행하기

git fetch

git fetch를 통해 원격 저장소의 commit 변경사항을 로컬 저장소에 가져와줍니다.

git checkout으로 변경사항 조회하기

git checkout origin/main

최신 커밋 내용을 받아오고, 코드도 변경되었습니다.
새로운 commit으로 변경사항을 미리 적용해보고, merge 혹은 pull을 적용할 수 있습니다.

main branch 돌아가기

git switch main

merge또는 pull을 하기 전에 다시 main branch로 돌아가 줍니다.

merge or pull하기

git pull

git pull로 commit 변경사항을 적용시켜 줍니다.


원격의 새 브랜치 확인

변경사항 확인하고 최신화해주기

git fetch

git fetch를 통해 새로운 변경사항을 로컬 저장소에 받아옵니다.

새로운 브랜치 있는지 확인하기

git branch -a

원격 저장소에서 새로운 브랜치가 만들어 졌는지 확인합니다.

코드 변경사항 확인하기

git checkout origin/"브랜치 이름"

다음 명령어로 새로운 브랜치에서의 코드 변경사항을 확인할 수 있습니다.

main 브랜치로 다시 변경해주기

git switch main

메인 브랜치로 다시 변경해 주었습니다.

새로운 브랜치 로컬 저장소에 추가해주기

git switch -t origin/"브랜치 이름"

git switch를 통해 브랜치를 변경해주고 -t명령어를 통해서 commit을 서로 주고받을 수 있게 해줍니다.


0개의 댓글