본문 바로가기

Pre_Course/Git&Github

Git&Github_02(설정 및 매뉴얼 확인, Git의 세 가지 상태)

- 파일을 git bash로 접근하기 위해서는 이전에 설정한 디렉토리를 우클릭하고 open git bash here 를 클릭하면 된다.

 

기본 브랜치명 수정하기

- git init과 동시에 만들어지는 default 브랜치 이름이 master로 되어 있는데 이를 main으로 바꾸려고 한다.

이때 사용하는 명령어는 git config --global init.defaultBranch main 이다.

- 해외에서는 master/slave 같은 차별적 표현을 배제하도록 권고한다고 하여 이렇게 Branch명을 변경한다고 한다.

 

git config --global init.defaultBranch main

 

- 명령어를 입력하고 잘 수정되었는지 확인하기 위해 git config --list를 입력하고, init.defaultbranch=main 으로 되어 있는 것을 확인하면 된다.

 

git이라는 폴더를 rm이라는 명령어로 지워보겠다.(하위 폴더까지 모두 삭제된다.)

 

rm -rf .git/

ls -a

 

폴더를 지운뒤에 ls -a을 입력하여 숨김폴더가 제대로 지워졌는지 확인할 수 있다.

확인 후, 다시 git init을 입력하여 Branch명이 main으로 바뀐 것을 확인한다.

 

이렇게 다양한 명령어들이 있으면 헷갈릴 수 있는데, 명령어에 대한 설명을 확인할 수 있는 방법들이 있다.

- git help <동사>

- git <동사> --help

- man git-<동사>

예를 들어 git config 명령에 대한 매뉴얼 페이지 도움말을 얻으려면 git help config 입력.

이렇게 하면 웹페이지가 새롭게 생성되어 확인할 수 있다.

 

더 간결한 방식으로 보고 싶다면 git <동사> -h 를 입력하면 된다. ex) git config -h

이것은 웹페이지 생성이 아닌, 사용 가능한 옵션에 대한 간략한 도움만 받을 수 있다.

 

git branch -M <Branch명> : 이를 활용하여 Branch의 이름을 쉽게 바꿀 수 있다.

- 위의 방식처럼 rm을 이용해 지우고 init을 통해 새롭게 만드는 방식보다 더 간단하다.

 

 

세 가지의 상태

- Git에는 파일이 존재할 수 있는 세 가지 주요 상태가 있다. 이는 Git의 핵심이며 지금부터 알아보도록 하겠다.

- modified(수정된), staged(스테이징된), committed(커밋된) 상태 세가지가 있다.

 

modified, staged, committed

- modified : 파일을 변경했지만 아직 데이터베이스에 commit하지 않은 상태

- staged : 현재 버전의 수정된 파일을 다음 commit snapshot에 포함하도록 표시한 상태

- committed : 데이터가 로컬 데이터베이스에 안전하게 저장된 상태

 

* snapshot(스냅샷) : 파일의 어떤 시점의 상태를 기록한 것

 

이로 인해 Git 프로젝트는 세 가지 주요 부분으로 구성된다.

- working tree(작업 트리), staging area(스테이징 영역), .git directory(Repository)

 

작업 절차는 대략 다음과 같다.

- init을 통해서 Repository 생성(기준점이 된다.)

- working directory(working tree)에서 변경사항을 체크해서 staging area에 올린다.(add와 같은 명령어가 있다, staging된 파일을 가지고 다시 뺄 수도 있다)

- 그러한 행위를 반복하다가 staging area에서 Repository로 기록한다.(commit)

 

Git 프로젝트의 주요한 세가지 부분

- working tree : 프로젝트의 한 버전을 단일 체크아웃한 것

- staging area : 일반적으로 Git directory에 포함된 파일로, 다음 commit에 포함될 내용에 대한 정보를 저장한다.

    Git 용어로는 index(인덱스)라는 기술적인 이름이 있지만, staging area(스테이징 영역)이라는 표현도 잘 사용된다.

- Git directory : Git이라고 하는 프로젝트의 메타데이터와 객체 데이터베이스를 저장하는 곳 

 

간략하게 working tree는 프로젝트의 한 버전을 의미하며, staging area는 그 버전으로부터 변경된 사항을 commit이전에 모아놓는 곳이다. 마지막으로 Git directory은 최종적으로 commit한 결과에 대해서 기록하는 곳이라고 할 수 있다.