GIT(47)
-
[GIT] HEAD 포인터
깃은 객체의 포인터 개념을 사용한다. HEAD가 객체 포인터다. 마지막 커밋 깃은 마지막 커밋 정보가 중요하다. 깃은 마지막 커밋 정보를 기반으로 새로운 커밋을 생성한다. 빠르게 마지막 커밋을 찾기 위해 HEAD라는 포인터를 사용한다. HEAD는 현재 작업 중인 브랜치의 마지막 커밋 ID를 가리키는 참조 포인터이다. 브랜치 HEAD 브랜치를 이동하면 HEAD 포인트도 이동된다. 브랜치가 여러 개이면 HEAD 포인트도 여러 개이다. 각각의 브랜치마다 마지막 커밋이 다르기 때문이다. 브랜치마다 마지막 커밋ID를 가리키는 HEAD 포인터가 하나씩 있다. 소스트리 HEAD 소스트리에서 해당 커밋 옆에 브랜치 아이콘이 있는 것을 볼 수 있는데 이것이 HEAD 포인터가 가리키는 커밋을 의미한다. 상대적 위치 깃의 ..
2022.08.03 -
[GIT] 브랜치 로그
브랜치에서 다른 브랜치로 이동하면 워킹 디렉토리는 변경된다. 브랜치 로그 현재까지 작업한 로그 기록을 확인해보자 로그를 출력할 때 브랜치 흐름도 같이 보려면 --graph 옵션을 함께 사용하면 된다. --graph --all 옵션을 사용하면 모든 로그를 출력한다. 로그 출력 왼쪽 부분에 브랜치 경로와 작업들이 텍스트 그래프로 출력된다. ※ --more 옵션으로 출력될 커밋 개수를 제한할 수 있다. 제한된 출력으로 브랜치 정보를 간략하게 확인할 수 있다. $ git show-branch --more=10
2022.08.02 -
[GIT] 브랜치 이동
브랜치를 생성하고 해당 브랜치에 커밋을 하려면 브랜치로 이동해야한다. 체크아웃 체크아웃은 객실을 비우고 떠나는 것을 의미한다. → 현재 브랜치를 떠나 새로운 브랜치로 들어간다는 의미다. 깃에서 브랜치 간 이동할 때는 checkout 명령어를 사용한다. $ git checkout 브랜치이름 워킹 디렉토리는 선택한 브랜치 하나만 연결되어 있다. 즉, 한 브랜치에서만 작업과 커밋을 할 수 있다. 다른 브랜치에서 작업하려면 브랜치를 변경하여 워킹 디렉토리를 재설정해야 한다. ※ 워킹 디렉토리에 커밋하지 않은 내용이 있다면 브랜치를 변경할 수 없다. 깃의 체크아웃은 거의 순간적으로 실행된다. 깃은 빠르게 포인터를 이용하여 빠르게 브랜치를 이동할 수 있는 것이 장점이다. ※ 체크아웃 방식 브랜치 외에 특정 커밋이나..
2022.08.02 -
[GIT] 브랜치 확인
간단한 브랜치 목록 $ git branch 현재 모든 브랜치가 나열된다. 별표(*) 표시는 현재 선택된 브랜치를 의미한다. 브랜치 해시 브랜치는 포인터로 특정한 커밋의 해시 값을 가리킨다. 깃의 저수준 명령어인 rev-parse를 사용하면 현재 브랜치가 어떤 커밋 해시값을 가리키는지 확인할 수 있다. $ git rev-parse 브랜치이름 커밋 로그에서 볼 때 footer 브랜치는 커밋ID와 동일한 해시값을 가리키고 있는 것을 확인 할 수 있다. 브랜치 세부 사항 확인 기본적인 branch 명령어는 간단한 브랜치 이름만 출력한다. 하지만 옵션을 사용하면 좀 더 상세한 브랜치 정보를 얻을 수 있다. branch 명령어 뒤에 -v 또는 -verbose 옵션을 함께 사용하면 브랜치 이름, 커밋ID, 커밋 메시..
2022.08.02 -
[GIT] 브랜치 생성
깃은 기본적으로 master 브랜치를 하나 가지고 있다. 그리고 브랜치는 HEAD 포인터를 가지고 있다. 저장소 생성 및 초기화 현재 브랜치가 master라는 것을 확인 할 수 있다. 현재 브랜치의 작업 위치를 쉽게 알 수 있다. 기본 브랜치 모든 커밋과 이력은 브랜치에 기록된다. 깃은 최소 1 개 이상의 브랜치가 필요하다. 따라서 저장소를 처음 초기화하면 master 브랜치 하나가 자동으로 생성된다. 첫 번째 커밋은 master 브랜치에서 시작한다. On branch master 메시지를 보면 현재 작업하는 브랜치 위치가 master라는 것을 알 수 있다. 또는 브랜치 목록을 볼 수 있는 명령어가 있다. $ git branch 브랜치 목록을 보여준다. master 브랜치 하나 있을 때 출력이 안되는데 ..
2022.08.02 -
[GIT] 새 작업하기
브랜치 작업 보통 새로운 기능을 추가하거나 많은 변경이 예상될 때 작업 폴더 전체를 복사했다. 안정적인 기존 코드는 남겨 두고 복제된 작업 폴더에서 실험적인 작업들을 하기 위해 코드를 분리한다. 커밋은 파일의 수정 이력을 관리하는데 사용한다면 브랜치는 프로젝트를 독립적으로 관리하는데 사용한다. 잦은 버그 수정과 새로운 기능 구현을 위해 작업 폴더를 복사하는 것은 프로젝트 유지 관리 측면에서 좋지 못하다. 브랜치를 이용하면 원본을 기반으로 새로운 사본을 만들어 기존 코드와 분리해서 작업을 할 수 있다. 브랜치 특징 기존 폴더를 복제하는 것과 다르게 가상 폴더를 사용하여 개발 작업을 구분한다. 가상폴더 브랜치는 작업 폴더를 실제로 복사하지 않고 가상 폴더를 만든다. 외부적으로는 물리적인 파일 하나만 있는 것..
2022.08.02