git은 VCS(virsion control system)중에서도 Distributed Version Control을 지향한다!🧐 (이게무람ㅎㅎ) 즉, 서버에만 history를 가지는게 아니라 각각의 개발자 모두가 history를 가지고 있는다! 이러면 서버에 문제가 생기거나 offline 상황에서도 작업이 가능한 장점을 가진다
git은 프로젝트가 진행되는 동안 각각의 버전을 snapshot을 통해 가지고 있다! 이렇게 프로젝트의 전체적인 부분을 snapshot 형태로 가지고 있다보니 각각의 version들을 쉽게 왔다갔다 할 수 있다! (뭔가 위험해 보이는거 해보고싶을때 남모르게 가능...)
snpashot은 그렇게 무겁지 않은데 변경되지 않은 부분들(파일들)은 이전의 링크를 가리키기 때문!git에는 총 3가지의 작업 환경으로 나뉜다.
말 그대로 우리가 작업하는 공간! Untracked / Tracked으로 다시 나뉠 수 있다.
특정 작업을 마치고 버전 history에 올라갈 준비가 된 녀석들을 옮겨놓는 장소 ( commit 준비 완료!)
commit(스냅샷!!)이라는 명령어를 통해 git directory로 보낸다!commit에는 스냅샷을 통해 저장된 고유의 해쉬코드가 부과된다. 이를 참조해 각각의 버전에 접근할 수 있는 것. 버전에 history를 가지고 있는 장소
checkout이라는 명령어를 통해 원하는 버전으로 돌아갈 수 있다!push 명령어를 사용해 서버에 업로드 할 수 있다.pull 명령어문돌이가 카페에서 그렇게 멋있어 보였던 CLI 환경에서 작업한다.😄
cmd + ~ : vscode에서 터미널 열기
git init : 깃을 초기화 한다. 이 프로젝트(폴더)가 git으로 관리된다!!! 라는 신호git config --global name "my name" : 이름 등록git config --global email "my email" : 이메일 등록git status
현재 어떤 branch로 작업하고 있는지, commit의 유무, 현재 파일들의 상태를 확인할 수 있다. 위 사진은 untracked된 파일들이 있으니 add를 통해 3가지 untracked된 파일 3가지를 tracked 상태로 만들어 봐라아~ 라고 하는것.
TIP!
git config --global alias.st statusst로 사용 가능!git add a.txt : a 파일을 staging area에 올려줘!git add *.txt : txt파일 전부를 staging area에 올려줘!git add . : 모든 파일 staging area로!git rm --cached * : staging area에 올라와 있는 파일들을 다시 working directory로 돌려보내기 ( untracked된 상태로 되돌아간다)git commit -m "추가할 메세지" : staging area에 있는 변경된 내용들을 git directory로 옮겨준다.git log : commit한 기록들을 볼 수 있다.두가지 방법 존재
git reset [돌아갈 버전의 hashcode 6자리] --hard추가적인 branch를 파서 작업을 하면, 기존 프로젝트에 영향을 주지 않고도 내가 해보고 싶은 작업들을 자유롭게 해볼 수 있다!! 말그래도 별도의 새로운 가지를 파는 것!
git branch : 생성된 branch들과 현재 적용되어 있는 branch를 확인할 수 있다.git branch [사용할 branch 이름] : 새로운 branch 생성git checkout [변경할 branch 이름]: 이동하고 싶은 branch로 이동!