github

GitHub(필수명령어)_2024-08-13

앵보몬 2024. 8. 13. 17:43
728x90
반응형

깃의 기본 개념
깃은 소프트웨어 개발 과정에서 코드의 변경 내역을 효율적으로 관리하기 위한 버전 관리 시스템입니다. 깃은 크게 세 가지 영역으로 나뉘어 작동합니다.

작업트리 (Working Tree)
파일 시스템 상에서 실제로 작업하는 공간입니다. 작업트리에서 파일을 수정하거나 새로 추가하고, 삭제할 수 있습니다.
작업트리는 항상 로컬 컴퓨터의 파일 시스템에서 변경된 상태를 반영합니다.

스테이지 (Staging Area)
커밋할 변경 사항을 미리 준비해 놓는 영역입니다. 수정된 파일들을 선택적으로 추가하거나 제거할 수 있습니다. 스테이지는 index 파일로도 알려져 있으며, 커밋 시 어떤 파일이 포함될지를 결정하는 역할을 합니다. 예를 들어, git add 명령어를 사용하여 작업트리의 변경 사항을 스테이지에 추가하고, git reset을 통해 스테이지에서 제거할 수 있습니다.

저장소 (Repository)
모든 커밋 기록과 메타데이터를 영구적으로 저장하는 곳입니다. 저장소는 .git 디렉토리 내에 위치하며, 이 디렉토리에는 다음과 같은 하위 디렉토리와 파일이 포함되어 있습니다:

objects : 파일의 실제 데이터와 관련된 블롭(blob) 객체와 커밋, 트리, 태그 등의 객체들이 저장됩니다.
refs : 브랜치와 태그의 참조 정보가 저장됩니다. 예를 들어, refs/heads/master는 master 브랜치의 최신 커밋을 가리킵니다.
config : 저장소의 설정 정보가 담긴 파일로, 사용자 정보와 저장소 관련 설정을 포함합니다.
HEAD : 현재 작업 중인 브랜치를 가리키는 포인터입니다. HEAD는 현재 체크아웃된 브랜치나 커밋을 나타냅니다.
index : 스테이지 영역의 정보를 저장하는 파일로, 커밋 시 어떤 변경 사항이 포함될지를 결정합니다.

이렇게 깃은 작업트리에서 파일을 수정하고, 스테이지에서 변경 사항을 준비하고, 저장소에 커밋하여 프로젝트의 버전 관리를 효율적으로 수행할 수 있도록 도와줍니다.



Git reset은 이전 커밋으로 되돌아갈 때 사용하는 명령어입니다. 하지만 어떤 옵션을 사용하느냐에 따라 되돌리는 범위가 달라집니다.

--soft
커밋 : 취소 (커밋을 취소하지만 스테이징 영역과 작업 디렉토리는 그대로 유지됩니다.)
스테이징 영역(index) : 유지 (스테이징된 변경 사항은 그대로 유지됩니다.)
작업 디렉토리 : 유지 (작업 디렉토리의 파일들은 변경되지 않습니다.)
주요 용도 : 커밋 메시지 수정, 커밋 분할. 예를 들어, 최근 커밋의 메시지를 수정하거나, 하나의 커밋을 여러 개로 나누고 싶을 때 유용합니다.

--mixed
커밋 : 취소 (커밋을 취소하지만 스테이징 영역은 초기화됩니다.)
스테이징 영역(index) : 취소 (스테이징된 변경 사항이 해제됩니다.)
작업 디렉토리 : 유지 (작업 디렉토리의 파일들은 그대로 유지됩니다.)
주요 용도 : 잘못된 파일 커밋을 취소하거나 특정 커밋으로 되돌리기. 스테이징된 변경 사항을 취소하고, 작업 디렉토리에서 작업을 계속할 수 있습니다.

--hard
커밋 : 취소 (커밋을 취소하고 스테이징 영역과 작업 디렉토리도 초기화됩니다.)
스테이징 영역(index) : 취소 (스테이징된 변경 사항이 제거됩니다.)
작업 디렉토리 : 취소 (작업 디렉토리의 파일들이 커밋된 상태로 돌아갑니다.)
주요 용도 : 프로젝트 초기화, 잘못된 브랜치 이동 복구. 작업 디렉토리와 스테이징 영역 모두를 특정 커밋 상태로 되돌릴 때 사용합니다. 이 옵션은 모든 로컬 변경 사항이 사라지므로 신중하게 사용해야 합니다.

이 옵션들은 각각의 상황에 맞게 Git의 상태를 조절하는 데 매우 유용합니다.

 

 

 

728x90
반응형