[Git/GitHub] Chapter 3 CLI 환경에서 버전관리

SoyoungLee·2021년 5월 10일
0

Git/GitHub

목록 보기
4/7
post-thumbnail

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

  • $ git remote add <원격저장소 이름> <원격저장소 주소>
    : 원격저장소를 등록.
    여러개 등록할 수 있지만 같은 별명은 하나만 가질 수 있음.
    통상 첫번째 원격저장소를 origin으로 지정

  • $ git remote -v
    : 원격저장소 목록 확인

clone

  • $ git clone <저장소주소> [새로운 폴더명]
    : 저장소 주소에서 프로젝트 복제.
    저장소 주소는 꼭 원격일 필요가 없으면 로컬저장소도 가능.
    새로 생길 폴더명은 생략가능하며 생략시 프로젝트 이름과 같은 이름의 폴더가 생성.
git clone https://GitHub.com/.../test.git .

clone 명령어 뒤에 한칸 띄고 마침표 필수! (현재 폴더에 받으라는 것)
'.' 붙이지 않으면 폴더안에 폴더 생성, 폴더 구조 복잡해짐

profile
Android Developer..+ iOS 슬쩍 🌱 ✏️끄적끄적,,개인 기록용 👩🏻‍💻

0개의 댓글