생활코딩 지옥에서 온 Git - 원리 : branch > Git

Git

분산버전관리 시스템 깃(Git) 강좌 공유

생활코딩 | 지옥에서 온 Git - 원리 : branch

본문

※ 영상을 선명하게 보기 안내
  1. 유튜브 영상에서 오른쪽하단에 톱니바퀴를 클릭합니다.
  2. 팝업목록에서 "품질" 선택하세요.
  3. 원하는 해상도를 선택해주세요.
※ 모바일에서 Wifi가 아니라면 데이타가 소진될 수 있으니 주의바랍니다.
생활코딩님의 Git강의 청각장애인을 위한 자막
15610164738794.jpg

 



자 그럼 지금부터 우리 그 게 3
내부가 브랜치 를 사용하는 과정에 어떤 변화를 겪게 되는가 라는 것에
대해서 지금부터 살펴보겠습니다
자 우선 저는 새로운 저장소를 새로 만들었습니다 깔끔하게 새로 시작할
거구요
그리고 이 디렉토리를 초기화를 먼저 하겠습니다 깃 이니
됐죠 꼭
자 귓 이 니스 했을 때
내부에선 어떤 일이 일어나나요 보시는 것처럼 이런 파일들이 생성이 됩니다
자 그 중에서 우리가 아직까지 살펴 보지 않았던 파일이 바로 헤드 라는
파일이 였어요 했듯 그리고 헤드 라는 파일은
깃을 처음 생성 했을 때 생성이 되면서
그리고 동시에 refs 언더바 하니 / 헤드 쓰 에
마스터라고 이렇게 적혀 있습니다
그리고 여기있는 요것은 파일의 이름인데
저런 파일은 아직 존재하지 않는 상태
자 그러면 제가 한번 커밋을 해보고
이 헤드 라는 파일이 어떤 변화를 겪게 된 응가도 같이 한번 보시죠
자 f1 점 텍스트 파일을 만들고 요 내용은 데이 라고 했습니다 그리고
저장 했어요
자 그리고 dead f1 점 텍스트 킥 커밋
- m
tel 이라고 하고 키 스토리로 내부를 살펴보면
자 보시는 것처럼 지금 변경된 파일들의 목록에서
최근에 추가된 파일 중에 이런게 생겼네요
re fss 라는 점 d 디렉토리 밑에 refs 라는 파일 디렉토리 밑에
헤드 스 라는 디렉토리 밑에
마스터라고 하는 파일이 생겼습니다 그리고 파일을 클릭해 보면 이렇게 어
5 오브젝트 id 값을 가지고 있고 저 오브젝트에 내용을 한번 클릭해
보면
보시는 것처럼 방금 제가 컴이 탄 그 커밋을 가리키는 아이디어 씁니다
자 다시 아까 처음에 얘기했던 걸로 돌아와서 우리가 기세
처음 초기화를 하면 점 기 디렉토리에는 헤드 라는 파일을 생깁니다 접하
이는 바이너리가 아니라 일반 텍스트 파일이 에요
자 그 파일을 열어보면 거기에는 refs 헤더 스 마 스 터 라고
적혀있고
refs ls 마스터는 이제 첫 번째 커밋을 1 시점부터 생성이 됩니다
그리고 이 파일의 내용을 보면 보시는 것처럼 방금 제가 컴이 탄 그
커밋을 가리키고 있습니다
자 커밋 한번 더 해볼게요
자 제가 두 번째 파일을 수정 했구요
킥 커밋 air sam 이 라고 해서 커밋을 했습니다 그리고 내부가
어떻게 바뀌는지 봅시다 자 보시는 것처럼 뭐 몇 가지 파일들을 생겼는데
음 여기 있는
마스터 라고 하는 저 파일 역시도 방금 바뀌었어요
그리고 져 파일을 클릭해 보면
오브젝트 id 가 있고 이번에 e 오브젝트 id 는 누구를 가리킨 야
방금 제가 컴이 탄
이번 을 가리키는 겁니다
자 다시 정리 자기 3 처음 만들면 헤드 라는 파일이 반드시 생기구요
이 헤드 라는 파일은 보시는 것처럼 마스터라고 하는 파일을 가리킵니다
그리고 마스터 라는 파일은 보시는 것처럼 가장 최신 커밋을 가리키는 것을
볼 수가 있습니다
자 이걸 통해서 우리가 할 수 있는 것은 상당히 많은 비밀이 풀립니다
첫번째 여러분이
킷 로그를 했을 때
깃이 여기 있는 2번을 이 컴 있을 가장 최신 컴이 씨다 라고 우리에게
알려줄 수 있었던 것은 깃이 바로 이렇게 동작하기 때문이라는 것을 우리가
출원해 볼 수 있죠
즉 킷은 헤드 라고 하는 파일을 가지고 있고 그 헤드 라는 파일은
refs 헤드 스 마 스 터 라는 파일을 가리키고 있고
이 파일은 가장 최근에 컴 2탄
컴이 3 의 오브젝트 id 값을 가지고 있기 때문에
킷은 뒷 로그를 하면 헤드 파일을 보고 헤드 파일에 있는 마스터 파일을
보고 마스터 파일의 적혀있는 커밋 오브젝트 id 값을 통해서 현재 컴이
뗀 현재 가장 최신 커밋이 무엇인가를 알아낼 수 있다 라는 것이죠
그리고 그 이전 컴이 슨 여기 있는 페어런트 라는 것을 통해서
탐색해 나갈 수 있다라는 겁니다
이것을 통해서 우리가 알 수 있는 것은 집에서
브랜치 라고 하는 것은 단지 refs 라는 디렉토리 밑에 있는 파일을
의미한다 라는 것을 알 수가 있죠
자 그럼 이번에는 브랜치를 하나 만들어 보겠습니다 자 제가 키 plan
치 라고 하고 exp 라고 한 다음에
내부적으로 어떤 변화가 생기는가 를 봅시다 두개의 파일을 바뀌었는데 그
중에 요것만 관심을 가져보세요
refs 위 테드 스미트 테이 2 xp 라는 파일이 생겼습니다
그리고 그 파일은 마스터 브랜치 와 똑같이
쇄신 커밋을 가리킵니다
그리고 제가 여기에서 torn 치라고 하면 보시는 것처럼 exp 라는
브랜치가 생성되었다 라는 것은 우리에게 보여 주죠
그리고 제가 만약에 이렇게 할 필요는 없습니다만
아래 점 기 디렉토리 밑에 있는 알이에프 했으 밑에 있는 헤드 스 밑에
있는
exp 라는 파일을 지워 버리면 키 브랜치를 했을 때
exp 라는 브랜치는 없는 것이 된다 라는 겁니다
반대로 제가 킷 로그 했을 때 나온 이 최신 커 미스
바탕으로 해서 점 d 디렉토리 ref sls 의 exp 라는 파일을
만들고 이걸 이렇게 적어주면
d 브랜치를 하면 어떻게 되요 exp 라고 하는 프렌치 가 다시 생성된
것을 볼 수가 있습니다
즉 깃에서 브랜치 라는 것은 굉장히 중요하고 강력한 일을 하지만 단지
파일 하나일 뿐입니다 그것도 바이너리가 아니라 일반 텍스트 파일이 라는
것이죠
자 그럼 제가 이번에는 브랜치를 바꿔보겠습니다
키 체크 exp 이라고 하고
리로드를 해보면 어떤 변화가 생기네요
보시는 것처럼
헤드 파일이 바뀝니다 그리고 헤드 파일은 이제
refs 에 exp 를 가리키고
exp 는 보시는 것처럼 이 커밋을 가리킵니다
자 그럼 이번에 제가 exp 에서 무언가 새로운 걸 파일을 한번 추가 해
볼게요
빈 f2 점 txt 라고 해서 얘는 a 라는 이름 제 내용을 가지고 있고
the dft 2점 텍스트 키커 및 - m 그리고 3
이라고 하면 보시는 것처럼 이 헤드는 누굴 가리켜 요
refs exp 를 가리키고 exp 는 방금 제가 컴이 신 3번의
가르칩니다
그럼 제가 여기에서 키 체크아웃 마스터라고 하게 되면
이번엔 어머 어떻게 바꿔요
보시는 것처럼 헤드파이 리마스터 가 됐고 마스터가 가리키는
어 최신 컴이 슨 바로 이것이 됐죠
그리고 o2 마스터 브랜치 우리가 체크아웃 했을 때 어떠한 파일과
디렉토리를 가지고 있어야 되는가에 대한 정보는 바로 트리 라고 하는 것이
이렇게 알려주기 때문에 우리가 마스터로 체크한 아우 탄 다음에 이렇게
보면 f1 점 텍스트가 이렇게 화면에 표시되는 것이죠
자 이렇게 해서 제가 지금까지 브랜치를 했을 때 내부적으로 일어나는 일을
설명 드렸는데
사실 꼭 브랜치에 국한된 것이 아니라 기술 만드는 그 순간부터 헤드 라는
파일이 만들어 지고
refs 의 헤드 헤드 신가요
예 헤드 스의 마스터 라는 파일이 생성되기 때문에 사실은 귀 시
만들어지는 저장소와 만들어진 그 순간부터 브랜치 라는 것은 중요한 어떤
요소로써 작동하고 있었다 라는 것이죠
그리고 또 하나
여기에서 이야기하니 헤드 라는 것에 존재가
단 지파 일이었다 라는 것이 드러납니다 제가 여기에서
to 그 브랜치 스
데코 레이트
그래프 이렇게
하면은 보시는 것처럼 얘는 그냥 expend 에는
마스터 앞에 헤드가 가리키는 것은 바로 현재 체크아웃한
현재 우리가 사용하고 있는 브랜치가 무엇인가 를 가리키는 어떤 약속된
기호가 해야되는데 저해 드는 사실은
내부적으로는 어떤 특정한 파일 이다 라는 것을 할 수가 있는 것이고 저
파일이 하는 역할은 바로 현재 체크 아웃된 가장 최신 커밋이 무엇인가를
알려주는 것이다 라는 겁니다
자 이렇게 해서 브랜치 의
브랜치 명령을 했을 때 내부적으로 어떤 일이 일어나는가 에 대해서 살펴
봤구요
어 일까지 일단 진행하겠습니다 이번 수업은

댓글 0개

등록된 댓글이 없습니다.

본 사이트의 컨텐츠는 명시적으로 공유기능을 제공하고 있는 공개된 자료를 수집하여 게시하고 있습니다.

저작권, 강의등록, 광고, 제휴등은 "관리자에게 문의"로 메세지 주시면 확인후 답변드립니다.

Menu