본문 바로가기

🧑🏻‍💻 Dev/Git & Github

[Git] Git 사용해보기 (Git 명령어)

Git을 사용하기 위해서는 먼저 Git을 설치해 줘야 합니다. Git 다운로드 링크에 들어가서 각자 운영체제에 맞는 Git을 설치해 줍니다. 저는 Mac을 사용하기 때문에 homebrew로 설치해 줬습니다.

 

그리고 Git을 터미널에서 사용하는 과정에서 CLI 명령어가 주로 사용될 것이기 때문에 미리 익혀두시는 것이 좋을 거 같습니다.

 

터미널에서 명령어로 Git을 사용하다 보면 화면에서 편하게 눈으로 보면서 클릭으로 간편하게 Git을 사용할 수 있는 GUI(Graphical User Interface) 툴인 Sourcetree나 Gitkraken 등을 사용하면 되지 않을까라는 생각을 하게 됩니다.

 

Git이 어떤 방식, 어떤 명령어로서 버전을 관리할 수 있는지 원리를 알아야 나중에 GUI 툴을 사용하게 되더라도 쉽게 입문할 수 있다고 생각됩니다. 그래서 먼저 터미널에서 직접 명령어로 Git을 사용하는 방법을 익히는 것이 도움이 될 수 있습니다. 

 

 

Git에서 버전을 관리할 때 사용되는 3개의 공간

Git 설치를 완료했다면 먼저 Git이 어떤 방식으로 버전을 관리할 수 있는지에 대해서 알아보고자 합니다. Git에는 3개의 공간이 존재합니다. 눈에 실제로 보이는 공간인가라고 물어보시면, 눈으로 직접 볼 수 있는 공간도 있고 보이지 않는 가상의 공간도 존재합니다.

 

1. 작업 디렉터리 (working directory)

뒤에서 git init이라는 명령어를 통해서 이 디렉터리에서 이제 Git으로 관리를 시작하겠습니다라고 알려주면서 .git이라는 파일이 생성될 것입니다. 이 .git이라는 파일이 존재하는 디렉터리를 작업 디렉터리라고 합니다.

 

작업 디렉터리에서 작업한 변경 내용(수정, 삭제, 생성 등)들은 Git에서 추적을 해서 버전으로 관리할 수 있도록 해줍니다.

 

2. 스테이지 (stage)

작업 디렉터리와는 다르게 눈에 보이지 않는 공간입니다. 다음 버전이 될 수 있는 후보들이 올라가 있는 공간입니다. 쉽게 말하면 작업 디렉터리에서 작업을 한 후 git add라는 명령어로 작업들을 스테이지로 올려줄 수 있습니다. 이렇게 스테이지에 올라와 있는 변경 사항들은 다음 버전이 될 수 있는 상태가 됩니다. 이 공간이 스테이지입니다.

 

3. 저장소 (repositroy)

스테이지에 올라온 변경 사항들을 이제 버전으로 만들기 위해 Commit이라는 걸 하게 됩니다. git commit이라는 명령어를 사용하면 스테이지에 올라와 있는 변경사항들을 하나의 버전으로서 저장소에 커밋할 수 있게 됩니다. 즉, 저장소는 버전이 만들어지고 관리되는 공간입니다.

 

 

Git 명령어 사용해 보기

# git 초기 설정하기

>> git config --global user.name "{Github Username}"
>> git config --global user.email {Github Email}

위에 있는 2개의 설정 명령어를 먼저 입력해 줍니다. 잘 설정되었는지 확인하기 위해서는 git config --list라고 쳐보면 확인이 가능합니다.

 

 

# git init

내가 지금 현재 위치해 있는 디렉터리를 작업 디렉터리로 만들기 위한 명령어입니다.

해당 명령어를 입력하면 .git이라는 숨김파일이 생성되고, 이는 곧 Git으로 관리를 시작하겠다는 것을 의미합니다.

노란색으로 뭔가 hint 이런 게 많이 뜨는데 저는 초기 브랜치 설정을 안 해줘서 이렇게 뜨는 것이기 때문에 문제는 없습니다. 안 보이는 분들도 있고, 보이는 분들도 있으실 텐데 거슬리면 hint를 읽어보고 git config 설정을 해주면 됩니다.

 

 

# git add

위에서도 말했듯이 작업 디렉터리에서 발생한 변경 사항을 스테이지로 올릴 수 있는 명령어입니다. 

예시를 위해서 test.txt라는 파일을 만들어서 진행했습니다. (touch test.txt 명령어를 쓰면 비어있는 파일을 만들 수 있음)

 

 

# git status

작업 디렉터리에 어떤 변화가 있었는지 확인할 수 있는 명령어 입니다. 위에서 test.txt를 생성해 주고 git status로 한번 확인해 줍니다.

test.txt가 Git에 의해 감지된 모습

이제 git add test.txt를 통해서 생성한 파일을 스테이지에 올린 후 다시 git status를 사용해서 상태를 확인해 봅니다.

초록색으로 바뀌고 스테이지에 올라간 것을 볼 수 있는 모습

색이 초록색으로 변경되고 스테이지에 잘 올라간 것을 볼 수 있습니다. 

 

 

# git commit

이제 스테이지에 올라와 있는 test.txt를 버전으로 만들어줘야 하는데, 이때 사용하는 명령어가 git commit입니다. 

그냥 git commit이라고만 치고 엔터를 누르면 커밋 메시지를 작성할 수 있는 vi 편집기 창이 열립니다. 커밋 메시지를 작성해 주고 vi 편집기 창을 닫아주면 됩니다.

git commit 후 열린 vi 편집기창

첫 줄에는 제목을 입력하고, 한 칸 띄우고 본문을 작성해 줍니다. 그리고 :wq 명령어를 이용하여 저장하고 나와주면 커밋이 완료됩니다.

 

 

# git commit -m "커밋 메시지 제목"

만약 나는 vi 편집기창으로 들어가서 적는 게 싫다. 제목만 써서 커밋을 하고 싶다고 하시면 이 명령어를 사용하면 바로 커밋을 할 수 있습니다.

git commit -m 명령어를 이용하여 커밋

이렇게 제목만 입력해서 바로 커밋이 되는 것을 확인할 수 있습니다.

 

 

# git log

커밋은 했어. 근데 어디서 확인해라는 질문에 답이 될 수 있는 명령어입니다. 지금까지 커밋한 목록들이 출력됩니다.

git log

저는 vi 편집기로 한번, git commit -m으로 한번 했기 때문에 2개의 커밋이 존재합니다. 여기서 노란색으로 막 적혀있는 부분은 해당 커밋을 지칭하는 고유의 문자열이고, 커밋 해쉬라고 부릅니다.

 

커밋 해쉬는 커밋끼리 작업을 비교하거나 HEAD를 옮기고, 병합할 때 사용됩니다. 여기서는 무엇을 의미하는지만 알고 넘어가시면 될 거 같습니다.

 

그럼 저 하늘색 HEAD랑 초록색 master는 무엇인지 궁금하실 겁니다. HEAD는 내가 지금 어디서 작업을 하고 있는지 알려줍니다. 일반적으로는 가장 최근 커밋에 HEAD가 위치합니다.

 

master는 내가 지금 있는 브랜치를 의미합니다. 정리해 보면 HEAD -> master는 나는 지금 master라는 브랜치에서 작업을 하고 있다는 것을 의미합니다.

 

 

# git log --oneline

위에서 본 커밋 목록을 간결하게 짧은 커밋 해쉬로 볼 수 있는 명령어입니다.

git log --oneline

지금은 커밋이 2개밖에 없어서 그렇지 나중에 커밋이 많아질 때 유용하게 사용되는 명령어입니다. 짧은 해쉬를 보면 위에서 봤던 긴 해쉬의 앞부분을 줄여놓은 것이라고 알 수 있습니다.

 

 

간단하게 사용되는 Git 명령어들을 터미널에서 사용해 봤습니다. 🙋🏻‍♂️