Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
05-16 20:20
관리 메뉴

nomad-programmer

[VCS/Git] 명령어 목록 본문

VCS/Git

[VCS/Git] 명령어 목록

scii 2019. 12. 6. 01:58

git은 다양한 명령어를 지원한다. 구글에서 'git cheat sheet' 등의 검색어로 검색하면 많이 찾을 수 있다. 

https://git-scm.com/docs

 

Git - Reference

Reference

git-scm.com

git은 파일을 세 가지 작업 영역으로 관리한다. 이러한 가상의 공간 구분을 염두에 두고 살펴보면 몇몇 명령어들의 의미가 더욱 명확해진다.

  • Working Directory : 저장소가 추적 중인 파일들이 위치하는 영역이다.
  • Staging Area : 커밋할 준비가 된 (staged) 파일들이 위치하는 영역이다.
  • Repository : 커밋되어 버전을 관리하는 파일들이 위치하는 영역이다. 이 영역의 파일이 수정되면 Working Directory 영역으로 이동된다.

Git의 작업 영역 구분

위의 작업 영역에 관한 개념을 염두에 두고 명령어들을 이해하면 한결 쉽다.

 

설정하기

명령어 설명
git config --global user.name <"이름"> Git에서 커밋할 때 기록하는 이름 설정
git config --global user.email <"이메일"> Git에서 커밋할 때 기록하는 이메일 설정
git config --global --add merge.ff false Git에서 merge명령을 실행할 때 "fast-forward" 옵션을 false로 주는 설정. 즉 "--no-ff (no fast-forward)" 옵션을 따로 설정하지 않아도 적용이 되게끔 하는 설정

 

저장소 생성

명령어 설명
git init <저장소 이름> 명령을 실행한 위치에 <저장소 이름>으로 저장소를 만듦
git clone <저장소 주소> <저장소 주소>의 원격 저장소를 클론

 

변경 내역 다루기

명령어 설명
git status 저장소의 상태를 확인. 추적하지 않은 파일, 추적 중이지만 변경되어 커밋해야 하는 파일 등을 보여줌.
git diff 마지막 커밋과 현재 변경된 내용을 비교해 보여줌.
git add <파일 이름> 버전 관리를 하기 위한 파일 추적을 시작. stage에 add를 하는 것
git reset <파일 이름> 변경 내역이 생겨서 git add 명령을 실행해 커밋할 준비가 된 파일을 Staging 영역에서 제거. 파일의 변경 내역은 보존
git commit -m <"커밋 설명 메시지"> git add 명령을 실행해 커밋할 준비가 된(staged 상태인) 파일을 로컬 저장소에 <커밋 설명 메시지>로 설명을 입력해 커밋

 

브랜칭

명령어 설명
git branch 저장소에 있는 브랜치 목록을 보여줌
git branch <이름> <이름>으로 브랜치를 만듦
git checkout <브랜치 이름> <브랜치 이름>으로 현재 작업 중인 브랜치를 변경한다.
git merge <브랜치 이름> 현재 작업 중인 브랜치에 <브랜치 이름> 브랜치를 가져와 병합
git branch -d <브랜치 이름> <브랜치 이름> 브랜치를 삭제

 

추적 중인 파일 삭제와 변경

명령어 설명
git rm <파일 이름> 저장소에서 버전 관리 중인 파일을 삭제. 그와 더불어 실제 로컬 파일도 사제. 삭제 기록이 저장소에 남는다.
git rm --cached <파일 이름> 저장소에서 버전 관리 중인 파일만 삭제. 로컬 파일은 그대로 남는다.
git mv <파일 이름> <변경될 파일 이름> 저장소에서 버전 관리 중인 파일의 이름(혹은 경로)을 변경. 변경 기록이 저장소에 남는다.

 

커밋하지 않은 상태로 임시 보관

명령어 설명
git stash Staged 상태에 있는 커밋되지 않는 변경 내역을 stash 라는 임시 공간에 저장
git stash pop stash에 마지막으로 저장된 변경 내역을 현재 브랜치에 적용
git stash list stash에 저장된 변경 내역의 목록을 출력
git stash drop 마지막으로 저장된 변경 내역을 삭제

 

내역 살펴보기

명령어 설명
git log 현재 브랜치의 버전 내역을 출력
git log --follow <파일 이름> 파일의 변경 내역들을 출력. 파일 이름의 변경까지 포함한 내역을 출력
git diff <브랜치> ... <다른 브랜치> 대상이 되는 두 브랜치 사이의 파일들을 비교해 다른 점을 출력
git show 커밋 대상 커밋의 메타데이터와 변경 내역을 출력

 

커밋 취소하기

명령어 설명
git reset <커밋> 대상 커밋 이후에 생긴 모든 커밋을 취소. 하지만 커밋과 함께 변경된 내역은 로컬 저장소에 남겨둔다.
git reset --hard <커밋> 대상 커밋 이후에 생긴 모든 커밋과 변경 내역을 대상 커밋 시점으로 되돌림

 

원격 저장소와 동기화

명령어 설명
git fetch <원격 저장소이름> 원격 저장소의 모든 변경 내역을 로컬 저장소에 다운로드
git merge <원격 저장소이름/브랜치이름> 원격 저장소의 대상 브랜치를 현재 작업 주인 브랜치에 병합
git push <원격 저장소이름> <브랜치이름> 로컬 브랜치의 모든 커밋을 원격 저장소의 대상 브랜치에 업로드
git pull <원격 저장소이름> git fetch와 git merge 명령을 차례로 실행하는 것과 같은 명령. 즉 git fetch <원격 저장소이름> 명령과 git merge <원격 저장소이름/현재브랜치> 명령을 실행한 결과와 같다.
Comments