CLI를 이용한 git 초기설정 및 commit 해보기

xeonu·2022년 7월 26일
0

git

목록 보기
1/1

git에 대한 소개와 설치방법은 레퍼런스를 참고하자.


git 최초 설정

windows 사용자는 git bash를 mac 사용자는 terminal을 사용하면 된다. 필자는 mac terminal을 사용하겠다.

git 사용환경 확인하기

$ git config --list

해당 명령어를 입력하면 git의 현재 설정내용을 list로 확인할 수 있다.

git 사용자 정보 설정하기

$ git config --global user.name "xeonu"
$ git config --global user.email xeonu@example.com

나중에 git을 commit할 때 이 사용자 정보를 사용한다. 만약 프로젝트마다 사용자 정보를 다르게 하고 싶다면 --global 옵션을 제거하면된다.

$ git config user.name
$ git config user.email

해당 명령어로 변경사항을 확인하자. 물론 --list 옵션으로도 확인할 수 있다.

이로써 git을 사용하기 위한 기본 설정은 모두 마쳤다. 추가적으로 git 편집기를 수정할 수도 있는데 필수적인건 아니므로 생략한다.

로컬저장소에서 git관리하기

git의 3가지 영역

  • Working Directory: 실제로 사용자가 파일을 수정하는 공간이다.
  • Staging Area: 곧 커밋할 파일에 대한 정보를 저장한다. Index라고 쓰기도한다.
  • git directory: commit을 완료한 파일들을 저장한 공간으로, 프로젝트의 메타데이터와 데이터베이스를 저장한 곳이다.

    Working Direcory에서 작업을 진행하고 Staging Area로 add라는 과정을 통해 전송한다. Staging Area에서 commit이라는 과정을 통해 git directory로 전달한다. 이로써 프로젝트의 새로운 버전이 commit이라는 과정을 통해 생성되었다.

git 저장소 만들어 버전 생성해보기

버전관리를 할 프로젝트 생성하기

기존의 만든 디렉토리에서 버전관리를 위한 git을 생성할 수 있지만 필자는 새로운 폴더를 만들어보겠다.

$ cd <폴더를 생성하고자 하는 위치>
$ mkdir xeonugit 
$ cd xeonugit

cd 명령어를 통해 프로젝트를 생성하기 원하는 공간으로 이동하고 mkdir 명령어로 xeonugit이라는 이름의 디렉토리를 만들었다. 그 후 cd 명령어를 통해 xeonugit 디렉토리로 이동하자.
(이 과정은 단순하게 폴더를 만드는 과정이므로 gui 환경에서 생성해도 git을 익히는데 문제는 없다.)

버전관리를 위한 git 생성하기

$ git init

여러분이 생성한 디렉토리에 위 명령어를 작성해주면 .git이라는 숨겨진 디렉토리가 생성된다. 이로써 버전관리를 하기위한 git이 생성되었다.

텍스트파일 생성하고 commit 해보기

$ touch sample.txt

위 명령어로 sample이라는 이름을 가진 텍스트파일을 생성하자. ls 명령어를 사용하면 비어있던 디렉토리에(사실 .git 디렉토리가 숨어있다) sample.txt가 생성된 것을 확인할 수 있다.

$ git add sample.txt

add 명령어를 작성하면 Working Directory에서 변경된 내용을 Staging Area로 전송한다. 아직 commit을 하지 않았기 때문에 새로운 버전이 생성된 것은 아니다.

$ git status

status 명령어를 작성하면 성공적으로 sample.txt 파일이 commit될 준비가 된 것을 확인할 수 있다.

$ git commit -m "sample.txt 파일 생성"

staging area에 존재하던 변경사항들을 commit 명령어를 통해 새로운 버전으로 생성했다. -m 명령어를 붙여서 "sample.txt 파일 생성" 이라는 메시지와 함께 commit했다.

$ git log

log 명령어를 통해 성공적으로 첫번째 커밋이 생성된 것을 확인할 수 있다.

이전 버전으로 돌아가기

commit을 통해 여러 변경사항들을 저장할 수 있다. 만약 이전 상태로 파일 내용을 변경하고 싶으면 어떻게 할까?

오늘 아침 메뉴는 닭가슴살입니다.

sample.txt 파일을 위와 같이 수정해보자.

$ git add .
$ git commit -m "아침 메뉴 추가"

해당 명령어로 수정된 sample.txt 내용을 commit하자. 여기서 git add sample.txt가 아닌 git add . 이라는 명령어를 작성한 이유는 working directory에서 수정된 모든 내용을 Staging Area로 전송한다는 의미를 가진다. 물론 특정 파일만을 add 하고 싶을 때는 아까처럼 작성하면된다.

$ git log

해당 명령어를 작성하면 우리가 생성한 2개의 커밋을 확인할 수 있고, 커밋할 때 작성한 메시지, 그리고 매우 복잡한 해시함수로 생성된 커밋 id가 있다. 특정 커밋으로 복원하기 위해서 이 id를 사용하여한다. 하지만 이 어마하게 긴 문자열을 다 외울 수 없으므로 우린 앞 4자리만 사용하도록 하자.

$ git reset {첫번째 커밋 아이디} --hard

위 명령어로 첫번째 커밋으로 복원할 수 있다. 뒤에붙은 --hard는 hard 방식으로 reset을 한다는 의미이다. reset 방식에는 hard, mixed, soft 3가지가 있으며

위와 같은 차이가 있다.여기서 Head는 현재 가리키고 있는 commit을, Index는 Staging Area, Work tree는 Working Area를 의미한다.


git의 아주 기본적인 내용을 다루었고 다음에는 git으로 branch를 생성하고 다른 커밋과 merge하고 원격저장소에 push와 pull을 하는 과정을 살펴보자.

profile
백엔드 개발자가 되기위한 여정

0개의 댓글