0과 1을 공부하다.

[Git] 자주쓰는 깃 명령어 모음 (CLI) 본문

Study/ETC

[Git] 자주쓰는 깃 명령어 모음 (CLI)

Developer_Jay 2022. 11. 11. 10:13
728x90

 

 

 

 

프로젝트의 버전을 관리하고 개발자간에 협업을 위해 전체 개발 소스를 공유하기 위해 Git Repository를 위한 웹 기반 호스팅 서비스인 GitHub 또는 GitLab를 많이 사용한다. 

 

GitHub또는 GitLab에 업로드하기 위해 오픈 소스 버전 관리 시스템(VCS: Version Control System)인 Git을 사용하게 된다. 
본 게시글에서는 필자가 자주 사용하는 git 명령어를 정리한다.

 

필자가 자주 쓰는 명령어를 정리하기 때문에 내용이 자세하지는 않다. 자세한 명령어에 대한 정보는 [Git 공식문서]를 참고한다.

 

 

Git 저장소 생성(초기화)


1.  git init 

 

  • git 저장소를 생성(초기화) 한다.
$ git init

 

 

Git 전역 옵션 설정


1. git config (git 설정)

 

  • git 전역 옵션을 설정한다.
$ git config --list # 모든 config 항목 출력

$ git config user.name # 사용자 이름정보 출력
$ git config user.email # 사용자 이메일 정보 출력

$ git config --global user.name "홍길동" # 사용자 이름 지정
$ git config --global user.email "support@webisfree.com" # 사용자 이메일 지정

 

 

Git 원격 저장소 관리

 

1. git remote

 

  • 원격 저장소를 관리하는데 사용한다.
  • remote랑 origin 용어가 등장하는데 remote는 원격 저장소명을 의미하고 origin은 remote url 주소를 담고 있는 alias를 의미한다.
$ git remote # 원격 저장소를 출력한다. 
$ git remote -v # 원격 저장소 주소를 출력한다.
$ git remote add origin [추가할 원격 git 저장소 주소] # 원격 저장소 주소를 추가한다.

 

 

Git Branch 관리

 

1. git branch

 

  • git의 branch를 추가/조회/삭제 한다.
$ git brach [브랜치명] # 로컬 브랜치를 추가한다.

$ git branch # 로컬 브랜치 목록을 출력한다.(1)
$ git branch -l # 로컬 브랜치 목록을 출력한다.(2)
$ git branch -r # 원격지 브랜치 목록을 출력한다.
$ git branch -a # 로컬 + 원격지 브랜치 목록을 출력한다.

$git branch -d [브랜치명] # 브랜치를 삭제한다.

 


2. git checkout

 

  • git의 branch를 다른 branch로 변경 또는 내용을 되돌린다. (switch or restore) 
$ git checkout [브랜치명] # 현재 브랜치를 변경한다.  
$ git checkout . #commit 되지 않은 내용을 되돌린다.



Git 작업 내용 업로드 및 내려받기


1. git status 

 

  • 작업 디렉토리(working directory)와 스테이징 영역(staging area)의 상태를 확인하기 위해서 사용한다.
$ git status # 모든 작업 내용을 출력한다.
$ git status uno # 현재 브랜치 정보만 출력한다.



2. git add

 

  • 작업 디렉토리(working directory) 상의 변경 내용을 스테이징 영역(staging area)에 추가하기 위해서 사용한다.
$ git add * # 모든 작업내용 add
$ git add [파일명] # 해당 파일의 작업내용을 add 한다.



3.  git commit

 

  • 스테이징 영역(Staging Area)에 있는 변경 내용을 로컬 저장소에 업로드한다.
$ git commit # 스테이징 영역에 있는 내용을 커밋한다.



4. git push 

 

  • 로컬 저장소(Local Repository)에 있는 코드 변경분을 원격 저장소(Remote Repository)에 업로드하기 위해서 사용한다.
$ git push origin [브런치명] # 원격 저장소로 로컬 저장소 브런치를 업로드한다.



5. git clone

 

  • 저장소에 있는 프로젝트(내용)를 가져온다.
  • 원격 저장소의 내용을 그대로 가져오기 때문에 현재 작업중인 내용을 소멸된다.
  • 최초에 프로젝트를 불러올 때만 사용한다.
$ git clone [clone URL] # 원격 저장소 url의 내용을 가져온다.



6. git pull

 

  • 저장소에 있는 프로젝트(내용)를 가져온다.
  • 현재 브랜치와 병합(Merge)하여 가져오기 때문에 현재 작업내용과 병합되어 가져온다.
  • 작업중에 원격 저장소의 변경사항을 반영할 때 사용한다. 
$ git pull origin [브랜치명] # 원격 저장소의 내용을 가져온다.

 


7. git fetch

 

  • 원격 저장소의 최신 이력을 확인한다.
  • pull 명령어를 사용하면 원격 저장소의 최신이력을 반영하여 병합하게 되는데, fetch 명령어는 최신 이력한 조회한다.
$ git fetch # 원격 저장소의 최신 이력을 조회한다.

 

 

Git 변경이력 관리

 

1. git diff

 

  • 파일의 어떤 내용이 변경되었는지 차이점을 비교한다. 
$ git diff --staged # 스테이징 영역의 변경사항을 확인한다.



2. git log

 

  • 커밋 히스토리를 조회한다.
$ git log # 모든 로그를 조회한다.
$ git log -n [숫자]  # 최근에서부터 n개 출력

 

 

Git 수정 이전으로 내용 돌리기

 

$ git reset --hard #모든 변경사항 되돌리기
$ git checkout -- src/hello.c #특정 파일만 되돌리기

 

 

 

Git 작업절차(시나리오)


1. 저장소 생성 후 업로드 (init) : 새로운 프로젝트를 생성할 때

 

  • 저장소 디렉토리에서 새로운 저장소를 생성한다.(init)
  • 변경 내용을 모두 반영한다.(add)
  • 스테이징 영역에 있는 내용을 로컬에 업로드한다. (commit)
  • commit이 정상적으로 반영되었는지 확인한다. (log)
  • 로컬 저장소와 원격 저장소를 연결한다. (remote add)
  • 로컬 저장소에 있는 내용을 원격 저장소에 업로드한다. (push)

 

 

2. 저장소 내려받은 후 작업 (clone) : 이미 있는 프로젝트를 내려받은 후 작업할 때 

 

  • git 원격 저장소에 있는 내용을 로컬에 내려받는다. (Clone)
  • 로컬에서 사용할 새로운 브랜치를 생성한다.(branch)
  • 생성한 브런치로 변경한다. (checkout)
  • 작업하고자 하는 브랜치의 내용을 내려 받는다. (pull) 
  • 변경사항을 수정하고 변경 내용을 스테이지 영역에 올린다. (add)
  • 변경된 파일의 내용을 검토한다. (diff)
  • 스테이징 영역에 있는 내용을 로컬에 업로드한다. (commit)
  • commit이 정상적으로 반영되었는지 확인한다. (log) 
  • 원격 저장소에 수정사항이 있다면 반영한다. (pull)
  • 로컬 저장소에 있는 내용을 원격 저장소에 업로드한다. (push)
  • 변경사항이 반영된 브랜치를 GitHub 또는 GitLab에서 목표 브랜치와 병합한다. (Merged)

 

 

참고사이트

 

 

gih) git add, commit, push 간단 정리

git init을 하면 .git 폴더가 생기며 stage 라는 공간이 생김 git init git add 를 하면 내가 선택한 파일들이 stage에 올라갑니다. add git commit은 stage에 올라온 모든파일을 저장한다 그럼 상태는 수정 없음

his-story.tistory.com

 

 

 

 

 

 

 

※ 본 게시글의 정보가 잘못 되었거나 부족한 부분에 대한 피드백을 환영합니다.

 

 

* CopyRight 2022. Jay Park All rights reserved.

728x90
Comments