GIT

(얄코git) Git 보다 깊이 알기

Ynghan 2023. 3. 2. 10:57

Git을 특별하게 만드는 것

snapshot

최종 버전에서 파일을 저장할 때

이전 시점에서 수정을 누적시켜 저장하는 것이 아니라

최종 버전에서 이전 수정 파일을 가져와서 저장하는 방식이다.

즉, 누적이 아니라 새롭게 복제해서 저장하는 방식이다.

이러한 스냅샷 방식은 용량을 많이 차지하지 않는 효율적인 방식으로 관리된다.

스냅샷은 새로운 버전이 만들어질 때 해당 버전의 각 파일이, 최종 상태 그대로 저장이 되어 있다.

중앙집중식 버전관리 / 분산 버전관리

중앙집중식

  • 중앙에서 현 버전으로 다운 받은 파일들에 대해서만 작업할 수 있다.

분산

  • 인터넷 연결 상태와 관계없이 로컬에서 자유롭게 작업을 할 수가 있다.

Git의 3가지 공간

git add . 를 사용해서 타임캡슐에 넣고

git commit 을 사용해서 캡슐을 묻는다.

묻힌 캡슐이 하나의 버전이다.

working directory : untracked / tracked

staging area

repository

파일의 삭제와 이동

git restore —staged pumas.yaml

  • staging area에서 working directory로 보내는 것

git restore pumas.yaml

  • working directory에서 commit 상태로 되돌아 가는 것

reset의 세 가지 옵션

  • hard : 수정사항 완전히 삭제
  • mixed (default) : repository에서 working directory로 이동
  • soft : staging area에 남겨둠git

HEAD

( 예제를 다운받아야 합니다. )

  • checkout과 HEAD를 사용하여 버전은 그대로 유지한 채로 시점만 이동할 수 있다.
  • git checkout HEAD^^
  • HEAD를 사용해서 해시 없이 버전을 reset 할 수 있다.
  • git reset —hard HEAD^^

Pull vs. Fetch

fetch와 pull의 차이점