Chapter 3 CLI 환경에서 버전관리
Git Bash 기본 명령어
- $ pwd
: 현재 폴더의 위치를 확인
- $ ls -a
: 현재 폴더의 파일 목록을 확인 / -a 옵션을 이용해 숨긴 파일도 볼 수 있음
- $ cd
: 홈 폴더로 이동(폴더 명은 사용자 이름과 같음/내 문서 폴더의 상위 폴더)
- $ cd <폴더이름>
: 특정 위치의 디렉토리로 이동
- $ cd ../
: 현재 폴더의 상위 폴더로 이동
- $ mkdir <새폴더이름>
: 현재 폴더의 아래에 새로운 폴더를 만듦
- $ echo "Hello Git"
: 메아리라는 뜻, 화면에 "" 안의 문장을 표시
- $ git init
: 현재 폴더에 Git 저장소를 생성, [.git]이라는 숨김 폴더가 로컬저장소
- $ git status
: Git 워킹트리의 상태를 보는 명령, 매우 자주 사용
- $ git status -s
: git status 명령보다 짧게 요약해서 상태를 보여주는 명령. 변경된 파일이 많을 때 유용
- 워킹트리 : 일반적으로 작업이 일어나는 곳
- 로컬 저장소 : .git 폴더, 커밋은 여기에 들어있음
- 작업 폴더 = 워킹트리 + 로컬 저장소
- Git 저장소 : 엄밀하게는 로컬저장소를 의미, 넓은 의미로 작업 폴더
옵션 설정하기
- $ git config --global <옵션명>
: 지정한 전역 옵션의 내용을 확인
- $ git congig --global <옵션명> <새로운 값>
: 지정한 전역 옵션의 값을 새로 설정
- $ git config --global --unset <옵션명>
: 지정한 전역 옵션을 삭제
- $ git config --local <옵션명>
: 지정한 지역 옵션의 내용을 확인
- $ git congig --local <옵션명> <새로운 값>
: 지정한 지역 옵션의 값을 새로 설정
- $ git config --local --unset <옵션명>
: 지정한 지역 옵션을 삭제
- $ git config --system <옵션명>
: 지정한 시스템 옵션의 내용을 확인
- $ git congig --system <옵션명> <값>
: 지정한 시스템 옵션의 값을 새로 설정
- $ git config --system --unset <옵션명>
: 지정한 시스템 옵션을 삭제
- $ git config --list
: 현재 프로젝트의 모든 옵션을 확인
기본적인 git 명령어
- $ git add 파일1 파일2
: 파일들을 스테이지에 추가
- $ git commit
: 스테이지에 있는 파일들을 커밋
- $ git commit -a
: add 명령을 생략하고 바로 커밋하고 싶을 때 사용.
변경된 파일과 삭제된 파일은 자동으로 스테이징되고 커밋.
untracked 파일은 커밋되지 않음
- $ git push [-u][원격저장소별명] [브랜치이름]
: 현재 브랜치에서 새로 생성한 커밋들을 원격저장소에 업로드.
-u 옵션으로 브랜치의 업스트림을 등록할 수 있음.
: 한번 등록한 후에는 git push만 입력해도 됨
- $ git pull
: 원격저장소의 변경사항을 워킹트리에 반영.
- $ git fetch [원격저장소별명][브랜치이름]
: 원격저장소와 브랜치와 커밋들을 로컬저장소와 동기화.
옵션 생략시 모든 원격저장소에서 모든 브랜치 가져옴
- $ git merge 브랜치이름
: 지정한 브랜치의 커밋들을 현재 브랜치 및 워킹트리에 반영
$ echo "hello git" > file1.txt # 큰 따옴표 안의 텍스트로 file1.txt 파일 생성
$ git add file1.txt # file1.txt 파일을 스테이지에 추가
reset 명령으로 스테이징 취소
- $ git reset [파일명]
: 스테이지 영역에 있는 파일들을 스테이지에서 내림(언스테이징).
워킹트리 내용은 변경 X. 옵션 생략시 스테이지의 모든 변경사항을 초기화
- $ cat 파일명
: 파일 내용 변경되었는지 확인
CLI로 log 살펴보기
- $ git log
: 현재 브랜치의 커밋 이력 확인
- $ git log -n<숫자>
: 전체 커밋 중에서 최신 n개의 커밋만 확인
- $ git log --oneline --graph --decorate --all
: 자주 사용하는 옵션으로 간결하게 보여줌
--oneline : 커밋 메시지를 한줄로 요약. 생략하면 자세히 보여줌
--graph : 커밋 옆에 브랜치의 흐름을 그래프로 보여줌. GUI와 유사한 형태
--decorate : --decorate=short 를 의미. 브랜치와 태그 등의 참조를 간결하게 표시
--all : all 옵션이 없을 경우 HEAD와 관계없는 옵션은 보여주지 않음
log 명령 옵션 확인
git log
HEAD와 관련된 커밋들이 자세하게 나옴
git log --oneline
간단히 커밋 해시와 제몬만 보고 싶을 때
git log --oneline --graph --all --decorate
모든 브랜치들을 보고 싶을 때
git log --oneline -n5
내 브랜치의 최신 커밋 5개만 보고 싶을 때
도움말 기능 사용하기
- $ git help <명령어>
: 해당 명령어의 도움말 표시 (명령의 의미, 세부적인 옵션 자세하게)
원격저장소 관련 CLI 명령어
remote, push, pull
clone
- $ git clone <저장소주소> [새로운 폴더명]
: 저장소 주소에서 프로젝트 복제.
저장소 주소는 꼭 원격일 필요가 없으면 로컬저장소도 가능.
새로 생길 폴더명은 생략가능하며 생략시 프로젝트 이름과 같은 이름의 폴더가 생성.
git clone https://GitHub.com/.../test.git .
clone 명령어 뒤에 한칸 띄고 마침표 필수! (현재 폴더에 받으라는 것)
'.' 붙이지 않으면 폴더안에 폴더 생성, 폴더 구조 복잡해짐