[Git] 6.2. Git Bash의 시작

업데이트:

카테고리:

태그: , , ,

Git Bash 실행 및 CLI 기본 명령어 파악

윈도우의 검색 기능에서 ‘Git Bash’를 입력하면 사용자 아이디 경로의 Git Bash 화면을 볼 수 있다.

image

$ 기호와 윗줄에 표시된 경로등을 합쳐서 프롬프트(Prompt)라고 한다. 프롬프트는 CLI에서 가장 기본적인 정보이다.

image

Sourcetree의 [터미널]을 클릭해서 Git Bash로 들어갈 수 있는데, 이때는 Git Bash의 시작 폴더가 사용자의 홈 폴더가 아닌 Git 작업 폴더로 변경되기 때문에 Git 폴더가 있는 경로까지 표시되며, ‘(master)’와 같은 현재 브랜치명이 추가로 표시된다. 프롬프트 끝에 브랜치명이 보인다면 이는 Git 작업 폴더라는 의미임을 기억해야 한다.


Git Bash의 기본 명령어

  • pwd

    • 현재 폴더의 위치를 확인
  • ls -a

    • 현재 폴더의 파일 목록 확인
    • -a 옵션을 이용해 숨김 파일도 볼 수 있다
  • cd

    • 홈 폴더로 이동
    • 홈 폴더는 사용자 이름과 폴더명이 같고, 내 문서 폴더의 상위 폴더
  • cd <폴더이름>

    • 특정 위치의 디렉토리로 이동
  • cd ../

    • 현재 폴더의 상위 폴더로 이동
  • mkdir <새폴더이름>

    • 현재 폴더의 아래에 새로운 폴더 생성
  • echo “Hello Git”

    • 화면에 “ “ 안의 문장인 “Hello Git”을 표시


Git 로컬저장소 생성

Git Bash를 이용해 로컬저장소를 만들고 Git 프로젝트를 시작해보겠다.


가. [내 문서] 폴더로 이동하기

Git Bash를 실행한 뒤, 다음과 같이 명령어를 입력하여 [내 문서] 폴더로 이동한다.

tmdgn@ASUSSH MINGW64 ~
$ cd # 홈 폴더로 이동

tmdgn@ASUSSH MINGW64 ~
$ cd Documents/ # 내 문서로 이동

tmdgn@ASUSSH MINGW64 ~/Documents
$ pwd # 현재 폴더의 위치 확인
/c/Users/tmdgn/Documents

위의 명령어대로 입력하면 Git Bash에서 정상적으로 내문서(Documents) 폴더에 위치하고 있음을 확인할 수 있다.

image


나. Git 로컬저장소를 위한 새 폴더 만들기

이어서 Git 저장소를 위한 폴더를 만들고 이동해보자.

tmdgn@ASUSSH MINGW64 ~/Documents
$ mkdir hello-git-cli # 새로운 폴더 생성

tmdgn@ASUSSH MINGW64 ~/Documents
$ cd hello-git-cli/ # 폴더로 이동

tmdgn@ASUSSH MINGW64 ~/Documents/hello-git-cli
$ pwd
/c/Users/tmdgn/Documents/hello-git-cli

위의 명령대로 [내 문서] 폴더에 [hello-git-cli] 폴더를 만들고 폴더 내로 이동했다.

image


다. 새 폴더 정보 보기

새 폴더의 정보를 보기 위해 git status 명령을 실행해보자. 이전 이력 때문에 Git Bash가 정신이 없다면 $ clear 명령어를 통해 이력을 지울 수 있다.

tmdgn@ASUSSH MINGW64 ~/Documents/hello-git-cli
$ git status
fatal: not a git repository (or any of the parent directories): .git

image

$ git status 명령어를 입력하여 다음과 같은 에러를 확인하였다. 에러 메시지는 ‘.git 폴더가 없다’ 는 뜻이다. 즉, 현재 디렉토리는 Git 저장소가 아니라는 것이다. $ git status 명령어는 Git 저장소에서만 정상적으로 수행되는 명령이다.

git status 명령

  • git status

    • Git 워킹트리의 상태를 보는 명령, 매우 자주 사용
    • 워킹트리가 아닌 폴더에서 실행하면 오류 발생
  • git status -s

    • git status 명령보다 짧게 요약해서 상태를 보여줌
    • 변경된 파일이 많을 때 유용


라. Git 저장소 초기화

우리가 만든 [hello-git-cli] 폴더를 Git 저장소로 만들어보겠다.

tmdgn@ASUSSH MINGW64 ~/Documents/hello-git-cli
$ git init # Git 저장소 생성
Initialized empty Git repository in C:/Users/tmdgn/Documents/hello-git-cli/.git/

tmdgn@ASUSSH MINGW64 ~/Documents/hello-git-cli (master)
$ ls -a
./ ../ .git/

tmdgn@ASUSSH MINGW64 ~/Documents/hello-git-cli (master)
$ git status # 워킹 트리 상태 확인
On branch master

No commits yet

nothing to commit (create/copy files and use "git add" to track)

위의 명령어대로 입력한 결과 아래와 같은 Git Bash 결과를 얻을 수 있었다.

image

$ git init 명령어로 폴더내에 ‘.git’ 폴더를 만들며 Git 저장소로 초기화하였고, $ ls -a를 통해 ‘.git’ 숨김폴더를 확인할 수 있었다. 이 폴더는 Git 저장소가 되었기 때문에 $ git status 명령어를 사용하면 이전처럼 에러가 나지 않고 ‘On branch master’ 라는 식으로 [master] branch에 있음을 의미하는 결과를 나타낸다.


용어 정리

  • 워킹트리

    • 일반적인 작업이 일어나는 곳
    • 워크트리, 워킹 디렉토리, 작업 디렉토리 등으로 쓰인다.
    • 일반적으로 사용자가 파일과 하위 폴더를 만들고 작업 결과물을 저장하는 곳
    • 공식적으로는 ‘커밋을 체크아웃하면 생성되는 파일과 디렉토리’로 정의
    • 작업 폴더에서 [.git] 폴더(로컬저장소)를 뺀 나머지 부분
  • 로컬저장소(local repository)

    • $ git init 명령으로 생성되는 [.git] 폴더
    • 커밋, 커밋을 구성하는 객체, 스테이지가 모두 이 폴더에 저장
  • 작업 폴더

    • 워킹트리 + 로컬저장소
  • 원격저장소(remote repository)

    • 로컬저장소를 업로드하는 곳
    • GitHub저장소 등이 이에 해당
  • Git 저장소

    • Git 명령으로 관리할 수 있는 폴더 전체
    • 일반적으로는 ‘워킹트리 + 로컬저장소’의 개념
    • 공식적으로는 로컬저장소와 Git 저장소를 같은 개념으로 사용
    • 즉, 엄밀하게는 로컬저장소 의미, 넓게는 작업 폴더 의미


옵션 설정하기

Git을 사용하기 위해서는 해야 할 일이 더 있다. $ git config 명령을 사용하여 Git 옵션 설정을 해야 한다. Sourcetree를 사용하는 경우 알아서 되지만 Git Bash는 아니다.

git config --global <옵션명>
지정한 전역 옵션의 내용 확인

git config --global <옵선명> <새로운 >
지정한 전역 옵션의 값을 새로 설정

git config --global --unset <옵션명>
지정한 전역 옵션의 값 삭제

git config --local <옵션명>
지정한 지역 옵션의 내용 확인

git config --local <옵선명> <새로운 >
지정한 지역 옵션의 값을 새로 설정

git config --local --unset <옵션명>
지정한 지역 옵션의 값 삭제

git config --system <옵션명>
지정한 시스템 옵션의 내용 확인

git config --system <옵선명> <값>
지정한 시스템 옵션의 값을 새로 설정

git config --system --unset <옵션명> <값>
지정한 시스템 옵션의 값 삭제

git config --list
현재 프로젝트의 모든 옵션 확인

Git 옵션에는 지역, 전역, 시스템 옵션의 세 종류가 있는데, 시스템 환경 옵션은 PC 전체의 사용자를 위한 옵션, 전역 옵션은 현재 사용자를 위한 옵션이고, 지역 옵션은 현재 Git 저장소에서만 유효한 옵션이다. 우선 순위는 지역 > 전역 > 시스템

일반적으로 개인 PC에서는 전역 옵션을 많이 사용하는데, 공용 PC에서 Git을 잠깐 사용하는 경우 지역 옵션을 사용해야 한다. 시스템 옵션은 직접 수정하는 일이 그리 많지 않다.

옵션 값을 이용해 여러 가지 설정이 가능한데 지금은 필수적인 값인 user.name(사용자 이름), user.email(사용자 이메일), core.editor(기본 에디터) 세 옵션의 값을 입력해 보겠다.


가. Git 전역 옵션 설정

tmdgn@ASUSSH MINGW64 ~/Documents/hello-git-cli (master)
$ git config --global user.name # 현재 user.name 확인
Orchemi

tmdgn@ASUSSH MINGW64 ~/Documents/hello-git-cli (master)
$ git config --global user.name "CodingJoA" # user.name 재설정

tmdgn@ASUSSH MINGW64 ~/Documents/hello-git-cli (master)
$ git config --global user.name
CodingJoA

원래 설정해두었던 이름인 ‘Orchemi’를 ‘CodingJoA’로 바꾸고 확인해보는 명령어 모음이다. 실제 Git Bash 실행화면은 다음과 같다.

image

나는 실습 이후에는 다시 ‘Orchemi’라는 이름으로 설정해두고 싶기 때문에 실습 이후 다시 ‘Orchemi’라는 이름으로 재설정하였다.


나. Git 기본 에디터 확인

CLI를 사용하면 텍스트 에디터를 쓸 일이 생기는데, 현재 Git Bash의 기본 에디터는 보통 리눅스 운영체제에서 주로 쓰는 vim이나 nano로 설정되어 있다. vim을 잘 사용하지 못 하는 경우, 기본 에디터를 변경해줄 필요가 있다.

tmdgn@ASUSSH MINGW64 ~/Documents/hello-git-cli (master)
$ git config core.editor

tmdgn@ASUSSH MINGW64 ~/Documents/hello-git-cli (master)
$ git config --global core.editor

tmdgn@ASUSSH MINGW64 ~/Documents/hello-git-cli (master)
$ git config --system core.editor

위의 3가지 core.editor(기본 에디터) 확인 명령어를 입력한 실행 결과 화면이다.

image

시스템의 기본 에디터를 확인하는 $ git config --system core.editor 명령어에도 아무 반응이 없는 것을 보니 기본 에디터가 설정이 되어있지 않는 것 같다. git config 명령어를 사용하여 설정할 수 있으나, 초보자는 실수할 가능성이 높으니 저자는 git을 재설치하는 과정에서 기본 에디터를 선택하는 것을 권한다.

git을 재설치하는 과정에서 ‘Use Visual Studio Code as Git’s default editor’ 옵션을 설정하려고 하는데, 비주얼 스튜디오 코드가 없었던 탓인지 [Next] 버튼이 비활성화되어 넘어갈 수가 없었다. 그래서 마지못해 비주얼 스튜디오 코드를 깔았다.

image

사담이지만, 그동안 IntelliJ에 적응하고자 그렇게 비쥬얼스튜디오를 피하고 피했는데 결국 이렇게 깔게 되는가 싶다. 새옹지마라고 비쥬얼스튜디오로도 작업을 한 번 해볼까도 싶다.

image

git을 재설치하고 Git Bash의 [hello-git-cli] 폴더에서 $ git config --system core.editor 를 입력했는데 비주얼 스튜디오 코드가 기본 에디터로 설정되지 않은 모양이다. 전역과 지역 옵션도 확인해보았지만 모두 무소식이다. 무슨 문제인지는 차차 해결해보자.


Reference

  • 팀 개발을 위한 Git GitHub 시작하기, 한빛미디어, 정호영,진유림

댓글남기기