[Git&GitHub] CLI 환경에 사용되는 기초 git 명령어

2025. 2. 18. 14:05·[Git&GitHub]
728x90

CLI를 사용하는 이유

Git을 이해하고 더 잘 사용하기 위해선 CLI환경을 익히는 것이 좋다

Git의 모든 기능을 사용하기 위해선 CLI를 사용하여야하며 리눅스 서버 같은 실행환경에선 GUI를 사용할 수 없는 경우도 있다

CLI 프로그램을 능숙하게 사용하게 되면 GUI 프로그램보다 다양한 기능, 향상된 작업 속도를 얻을 수 있다

CLI 유의점

CLI에 표시되는 영어 표시들을 반드시 읽어야 함

Git Bash

Git Bash 및 CLI 명령어 파악

$ 기호와 윗줄에 표시된 경로 등을 합쳐서 프롬프트(prompt)라고 한다

이는 가장 기본적인 정보를 보여준다

기본적으로 Git Bash를 시작하면 현재 폴더는 사용자의 홈 폴더에서 시작한다

기본적인 Git Bash 명령어들

pwd 현재 폴더 위치 확인

ls -a 현재 폴더의 파일 목록 확인
-a 옵션을 이용해 숨김 파일도 볼 수 있음  
cd 홈 폴더로 이동합니다
홈 폴더는 사용자 이름과 폴더명이 같고 내 문서 폴더의 상위 폴더이다  
cd 폴더이름 특정 위치의 디렉터리로 이동
cd ../ 현재 폴더의 상위 폴더로 이동
mkdir 새 폴더 이름 현재 폴더의 아래에 새로운 폴더 생성
echo ‘Hello Git’ 화면에 ‘’안에 문장을 표시함

Git 로컬 저장소 생성하고 상태 확인하기

CLI 환경에서 로컬 저장소를 만들기 위해 Documents로 경로를 옮긴 다음

‘hello-git-cli’라는 폴더를 생성함

git status 명령으로 새로 만든 폴더의 정보를 확인해보자

  • git status - Git 저장소의 상태를 확인할 수 있는 명령어

not a git repository (or any of the parent directories): .git 폴더라는 오류가 발생한다

.git 폴더가 없다는 오류이다

git status 명령은 Git 작업에서만 수행되는 명령이다

git status 명령

| git status | Git 워킹트리의 상태를 보는 명령으로 자주 사용함 워킹트리가 아닌 폴더에서 실행하면 오류가 발생함 | | --- | --- | | git status -s | git status 명령보다 짧게 요약해서 상태를 보여 주는 명령으로 변경된 파일이 많을 때 유용함 |

새로 만들 hello-git-cli 폴더에 git init을 이용해 저장소를 만들어보자

git init 명령으로 현재 폴더에 git 저장소를 생성하며 -b 옵션으로 기본 브렌치를 main으로 지정했다는 것을 알아야한다

Initialized empty Git repository in 저장소 주소는 비어있는 Git 저장소를 .git 폴더에 만들었다 라는 내용이다

git init -b main 기본 브랜치를 main으로 지정하고 현재 폴더에 Git 저장소를 생성한다. 현재 폴더에는 .git이라는 폴더가 생성되며 이는 로컬 저장소의 정보를 저장하는 폴더이다

로컬 저장소가 있는 현대 폴더는 Git에선 워킹트리라고 한다

git에서 사용하는 용어

용어 설명

워킹트리 워크트리, 워킹 디렉토리, 작업 디렉터리, 작업 폴더 모두 같은 뜻으로 사용된다.
사용자가 파일과 하위 폴더를 만들고 작업 결과물을 저장하는 곳을 워킹트리라고 부른다  
정확하겐 작업 폴더에서 [.git] 폴더를 뺀 나머지 부분이 워킹트리이다  
로컬저장소 git init 명령으로 생성되는 [.git] 폴더가 로컬 저장소이다
원격저장소 로컬 저장소를 업로드하는 곳을 원격 저장소라고 부른다.
Git 저장소 Git 명령으로 관리할 수 있는 폴더 전체를 일반적으로 Git 프로젝트 혹은 Git 저장소라고 부른다

Git 명령어 옵션 설정하기

git config 명령을 사용해서 Git 옵션을 설정해야 한다

명령어 설정

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 config 명령으론 옵션을 보거나 값을 바꿀 수 있다

Git 옵션엔 local, global, system 세 종류가 있다

시스템 환경 옵션은 PC 전체 사용자를 위한 옵션

전역 옵션은 현재 사용자를 위한 옵션

지역 옵션은 현재 Git 저장소에서만 유효한 옵션이다

옵션을 이용하면 여러가지 설정이 가능하다

필수 절정인 user.name, user.email, core.editor 세 옵션의 값을 입력해보자

CLI를 사용하면 텍스트 에디터를 사용할 일이 생기는데 보통 vim이나 nano로 설정되어 있다

기본 에디터가 뭘로 설정되있는지 확인해보자

필자는 git 설치 시 vscode로 지정해두었다

마지막으로 color.ui 값을 auto로 지정해두면 설정은 마무리 된다

Git 기본 명령어 살펴보기

add와 commit

git add 파일명 파일을 스테이지에 추가함

git commit 스테이지에 있는 파일 커밋
git commit -a add 명령어를 생략하고 바로 커밋하고 싶을 떄 사용 가능
git push [-u] [원격 저장소 별명] [브랜치 이름] 현재 프랜치에서 새로 생성한 커밋들을 원격 저장소에 업로드함
-u 옵션으로 브랜치의 업스트림을 등록할 수 있음  
git pull 원격 저장소의 변경 사항을 워킹트리에 반영함
git fetch + git merge의 합과 같음  
git fetch [원격 저장소 별명] [브랜치 이름] 원격 저장소의 브랜치와 커밋들을 로컬 저장소와 동기화함
git merge 대상 브랜치 지정한 브랜치의 커밋들을 현재 브랜치 및 워킹트리에 반영함

git을 사용하여 파일을 하나 만들고 git status 명령어를 입력해보자

file1.txt가 추적되지 않고 add를 사용하여 스테이지에 추가할 수 있다고 알려준다

스테이지에 올라간 걸 확인할 수 있다

reset: 스테이지에서 내리기

git reset 명령을 사용하면 쉽게 파일을 스테이지에서 내릴 수 있다

  • git reset [파일명] - 스테이지 영역에 있는 파일을 스테이지에서 내린다, 옵션 생략 시 모든 변경 사항을 초기화한다

이 명령은 워킹트리의 내용은 그대로 두고 해당 파일을 스테이지에서만 내린다

soft, mixed, hard 세 가지 옵션이 있으며 생략 시 mixed로 동작한다

이를 언스테이징이라고 한다

commit 생성하기

스테이지에 파일을 올린 다음 (git add) git commit 명령어를 통해서 커밋이 가능하다

git commit을 진행하면 텍스트 에디터가 열리는데 작성 시 규칙이 있다

첫째줄과 둘째줄 사이는 반드시 한칸 띄어야하며

첫줄엔 작업 요약

다음줄엔 작업 내용을 자세하게 기록해야한다

이후 저장 후 닫으면 커밋이 생성된다

커밋이 만들어지면 커밋 시점의 파일 상태로 언제든지 복구가 가능하다

좋은 커밋 메세지의 일곱가지 규칙
1. 제목과 본문을 빈 줄로 구분한다
2. 제목은 50자 이내로
3. 제목을 영어로 쓸 경우 첫 글자는 대문자로
4. 제목에는 마침표를 넣지 않는다
5. 제목을 영어로 쓸 경우 동사원형으로 시작
6. 본문을 72자 단위로 줄바꿈
7. 무엇을 바꿨는지, 왜 바꿨는지를 중점으로 설명

log: 커밋 히스토리 확인하기

git log 명령으로 Git의 커밋 히스토리를 확인해보자

git log 현재 브랜치의 커밋 이력을 보는 명령

git log -n숫자 전체 커밋 중에 최신 n개의 커밋만 보여줌
git log —oneline —graph —all —decorate 로그를 간결하고 멋지게 보여줌
—oneline: 커밋 메세지를 한 줄로 요약해서 보여줌  
—graph: 커밋 옆에 브랜치의 흐름을 그래프로 보여줌  
—all: all 옵션을 지정하지 않으면 HEAD와 관계없는 옵션은 보여주지 않음  
—decorate: 브랜치와 태그 등의 참조를 간결히 표시함  

커밋 히스토리 앞에 있는 16진수 7자리는 커밋 체크섬 혹은 커밋 아이디이다. SHA1 해시 체크섬 값을 사용하는데 이는 전세계에서 유일한 값을 가진다

보통 git log 명령은 옵션 없이 써도 되지만 옵션을 사용하면 간결하고 가독성이 좋게 표시된다

git log HEAD와 관련된 커밋이 자세하게 나옴

git log —oneline 간단히 커밋 해시와 제목만 보고 싶을 때 사용
git log —oneline —graph —decorate HEAD와 관련된 커밋들을 조금 더 자세히 보고 싶을 때 사용함
git log —oneline —graph —all —decorate 모든 브랜치들은 보고 싶을 때 사용
git log —oneline -n숫자 내 브랜치의 최신 커밋을 n개만 보고싶을 때 사용

help: 도움말 기능 사용하기

우리가 모르는 명령어나 도움이 필요할 땐 git help 명령을 사용하면 된다

  • git help 명령어 - 해당 명령어의 도움말을 표시한다

원격 저장소 관련 Git 명령어

remote & push

원격 저장소 등록하는 Git 명령

git remote add 원격 저장소 이름 원격 저장소 주소 원격 저장소를 등록함
여러개 등록이 되지만 별명은 곂지면 안됨
통상 첫번째 원격 저장소를 origin이라고 함
git remote -v 원격 저장소 목록 살펴보기

git push 시 오류가 발생한다

현재 main 브랜치와 원격 자장소의 브랜치가 서로 연결되지 않았다는 얘기이다

—set —upstream 명령을 사용하거나 단축어인 -u를 사용한다

이 명령 후엔 origin 저장소의 main 브랜치가 로컬의 main 브랜치의 업스트림으로 지정되어 git push 명령만으로 오류 없이 푸시할 수 있다

git log 확인 시 HEAD는 main을 가리키고 있고 origin/main 브랜치가 생긴 것도 확인 가능하다

HEAD는 항상 작업중인 브랜치를 가리킨다

clone: 저장소 클론하기

git clone 명령을 사용하면 소스트리에서 Clone 버튼을 클릭해 저장소를 복제하는 것과 같다

git clone 명령을 사용 시 저장소 주소가 꼭 원격 저장소의 주소일 필요는 없다

때에 따라 로컬 저장소를 클론할 수 있다

git clone 원격 저장소 주소 [새로운 폴더 이름] 저장소 주소에서 프로젝트를 클론한다. 폴더 이름은 생략이 가능하며 폴더명 생략 시 프로젝트와 동일한 이름의 폴더가 생성된다. 로컬 저장소도 클론이 가능하다

클론된 로컬에서 커밋을 진행해보자

다시 원본으로 돌아가 pull을 해보자

pull은 원격 저장소의 변경사항만 가져오는 fetch와 브랜치를 합치는 merge 두 명령어를 동시에 쓰는 것과 같다는 사실을 인지하자

728x90

'[Git&GitHub]' 카테고리의 다른 글

[Git&GitHub] 포크(fork)와 리베이스(rebase)  (0) 2025.02.10
[Git&GitHub] merge의 종류와 충돌 시 해결방법  (0) 2025.02.07
[Git&GitHub] SourceTree를 사용한 commit & push  (0) 2025.02.06
[Git&GitHub] Git과 GitHub 시작하기, 그리고 Git Bash를 활용한 Repository와 Local Storage 파일관리 기초  (1) 2025.02.06
'[Git&GitHub]' 카테고리의 다른 글
  • [Git&GitHub] 포크(fork)와 리베이스(rebase)
  • [Git&GitHub] merge의 종류와 충돌 시 해결방법
  • [Git&GitHub] SourceTree를 사용한 commit & push
  • [Git&GitHub] Git과 GitHub 시작하기, 그리고 Git Bash를 활용한 Repository와 Local Storage 파일관리 기초
뽕규의 스케치북
뽕규의 스케치북
공부 열심히 해볼게요
  • 뽕규의 스케치북
    뽕규의 스케치북
    뽕규의 스케치북
  • 전체
    오늘
    어제
  • 링크

    • 파이썬 공식 문서
    • GitHub
    • 분류 전체보기 (37)
      • [파이썬] (17)
      • [데이터 분석] (3)
      • [Git&GitHub] (5)
      • [자료구조 & 알고리즘] (3)
      • [안드로이드 앱] (0)
      • [네트워크] (0)
      • [머신러닝 & 딥러닝] (0)
      • [SQL] (1)
      • [컴퓨터 구조 & 운영체제] (0)
      • [개발자 수학] (0)
      • [노션] (6)
      • [기타] (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 공지사항

  • 인기 글

  • 태그

    push
    *
    기초
    깃허브
    sourcetree
    github
    개념
    GIT
    노션
    깃
    발전
    파이썬
    TODO
    함수
    pull
    소스트리
    공부
    수식
    python
    DB
  • 최근 댓글

  • 최근 글

  • 250x250
  • hELLO· Designed By정상우.v4.10.3
뽕규의 스케치북
[Git&GitHub] CLI 환경에 사용되는 기초 git 명령어
상단으로

티스토리툴바