[생활코딩] 지옥에서 온 Git 8강~18강


새롭게 생활코딩에 올라온 GIT을 공부하는게 나을 것 같다 판단하여 ‘지옥에서 온 Git 요약은 여기까지만 하려고 한다.

생활코딩 : 지옥에서 온 Git 을 보고 공부한다.
대충 알던 git을 다시 제대로 공부하기 위함이다.

과거로 돌아가기(reset)

  • reset VS revert 이라는 게 있다.
  • git reset commit메세지 --hard를 하면 그 커밋에 해당하는 소스코드로 돌아간다.(앞에껀 삭제, 그러나 남아는 있다 눈에 안 보이지만 나중에 복구할 수 도 있다. 나중에 깃의 원리를 배우자.)
  • 내 컴퓨터에 있는거만 reset해야한다. 공유에서는 reset하면 안된다고 한다.
  • git revert라는 것도 있다.(아직은 필요없다. 중요한건 버젼과 버젼간의 차이 이런거 알면됨)

스스로 공부하는법

  • git commit --help 쳐서 git 내용에 대한 옵션 설명 보기
  • 예를들어 -a이나 -all을 같이 치면 git add를 치지 않더라도 자동으로 stage에 올릴 수 있다.
  • 에디터를 키는거 자체도 귀찮을수 있음 :git commit -am "version_``"

수련해봅시다.

  • 협업하면 여기까지 배운거로는 택도 없다.

git의 원리 소개

  • 원리를 알아야 응용가능하고 영감을 가질 수 있다고 생각한다.

git add

  • git 내용 보기 : cd .git 해서 ls -al하면 내용 보기 힘들다. 그러니까 gistory해서 사이트이름 localhost:번호라고 치면 된다.
  • objects~ 파일은 f1.txt(add한 파일)의 내용이 들어있다.(이걸 오브젝트라 부른다. 혹은 객체)
  • index 파일에는 object~로 생긴 파일을 가르키고 파일명이 들어있다.
  • 중요:파일 복사할때 일어나는일 : cp f1.txt f3.txt를 해서 add했더니 index는 새로 생겼지만 오브젝트는 그대로다(시간만 바뀌었다.), 복사뿐만 아니라 내용이 같다면 오브젝트가 같다.

objects 파일명의 원리

  • www.sha1-online.com 사이트 들어가면 파일의 내용은 해쉬 알고리즘을 통하면 해쉬값이 나온다.
  • 주관적인 플로우 : add를 하면 파일의 내용 정보와 부가적인 정보를 추가해서 압축한다. 해쉬를 통해서 나오는 값을 objects라는 디렉토리 안에 만들고 내용 정보 저장 -> 파일명(ex. f1.txt)을 index에 넣어준다.

commit의 원리

  • commit을 하면 어떻게 되는가? : 새로운 파일 5개, 직전 2개(몇초전으로 뜸, add할때)도 관련되어 있을거 같다.
  • objects~에는 누가 적었는지, 내용, tree 옆에 오브젝트가 들어있다.
  • 버젼을 커밋할때 스냅샷해서 tree를 정보구조로 그 정보를 가지고 있다.(이해 어렵다.)
  • parent : 이전 버젼들 볼 수 있다.
  • tree : commit을 한 그 시점의 파일의 이름과 내용이 tree에 들어있다.
  • blob은 파일의 내용을 담음
  • 요약 : 커밋시 오브젝트는 3가지를 가진다. 1)blob(내용), tree(내용을 가지는거), commit(그에 해당하는 오브젝트id)

status의 원리

  • objects/~ 이거랑 index와 내용이 일치한다면 git status 했을때, nothing to commit이라고 나온다.
  • 기존에 있던 내용을 바꾼다면, index와 바꾼 파일이 다르다면, modified(수정) 되었다라고 알 수 있다.
  • add하면 commit 대기상태라는 걸 알 수 있다.
  • git working directory vs index vs repository 라고 구글링해서 이미지로 보면 이해가 빠르다.

branch 소개

  • 작업을 하다가 두개로(예를 들어 고객용, 자신용)로 나누는걸(분기라고함) 브랜치를 만든다라고 표현한다.
  • 기본적으로 하나의 브랜치를 가지고 있는거라고도 할 수 있다.
  • 깃이 가져온 혁신 branch를 쓸만하게 바꿨다.





© 2018. by statssy

Powered by statssy