gistory 를 실행한 후
**NOTE : 아래 링크를 클릭하면 gistory 에 관한 전반적 내용이 있습니다.
[IT/DevOps] - github#3 : gistory and git rm
git init을 하게 되면 볼 수 있는 파일이
./.git/HEAD 이다.
./.git/HEAD 은 ./.git/refs/heads/master 을 가르킨다.
./.git/refs/heads/master 은 가장 최신 commit ID 를 확인할 수 있다.
여기서 git log 가 작동하는 원리를 알 수 있다. git log 는 가장 최신 commit 을 상단에 보여주게 되는데 이는 git이 내부적으로 ./.git/HEAD 라는 파일을 가지고 있고 이 파일은 ./.git/refs/heads/master 을 가르킨다. 그리고 이 master 파일은 가장 최근에 commit 한 오브젝트 정보를 가지고 있어 우리가 git log 를 통해 가장 최신 commit을 확인 할 수 있다.
이제 exp 라는 이름의 브랜치를 한번 만들어 본다
% git branch exp
gistory 확인해보면
가장 최신 commit 오브젝트를 포함한 새로운 ./refs/heads/exp 가 생성된걸 볼 수 있다.
이렇게 만들어진 브랜치를 terminal에서 지워본다면
% rm .git/refs/heads/exp
% git branch
* master
브랜치 리스트에는 마스터만 볼 수 있다.
그 후 다시 exp 파일을 vi 를 통해 만들어 보자 그 안에는 최신 commit ID 를 넣는다.
% vim .git/refs/heads/exp
다시 git branch 리스트를 보면 exp 가 생성된 것을 확인 할 수 있다.
% git branch
exp
* master
이제 브렌치를 exp 로 바꾸면 HEAD 파일의 내용이 바뀜 refs/heads/master ▷refs/heads/exp
% git checkout exp
Switched to branch 'exp'
내용이 도움이 되셨다면 블로그 구독하기 부탁드리겠습니다.
* 이 글의 모든 저작권은 aliceintr에 있으며 무단 배포 및 사용은 자제해 주시기 바랍니다. *
'DevOps > GIT' 카테고리의 다른 글
github#7 3 ways merge (0) | 2020.11.20 |
---|---|
github#6 git merge conflict (0) | 2020.11.20 |
github#4 branch (0) | 2020.11.17 |
github#3 gistory and git rm (0) | 2020.11.16 |
github #2 github reset (0) | 2020.11.16 |