맛동산이

Git) git에 대한 기본적인 개념과 github 커맨드 본문

다양한 내용들

Git) git에 대한 기본적인 개념과 github 커맨드

진ddang 2022. 6. 18. 17:43

Git/github

git : 버전 관리를 위한 툴이다. 버전 관리 시스템이다.

깃의 동작 원리

what is git?

깃은 버전 관리 시스템(vcs)의 일종으로 로컬 컴퓨터에 파일을 서버 컴퓨터에 올려두고, 이를 통해서 로컬에서 파일을 관리하는 것이 아닌, 서버에서 관리하는 것으로 여러 사람이 접근하고 , 코드를 유지, 보수할 수 있게 도와주는 프로그램의 일종이다.

git의 3가지 스테이지 

git은 3가지 스테이지를 가진다.

  1.  working directory
  2. stage area
  3. git repogitory

간단하게 설명하자면, working directory는, 현재 내 컴퓨터에서만 지금 작동하는 내용이다.

stage area는 깃을 레파지토리에(온라인 서버) 올리기 전에 commit한 상태를 의미한다.

git repogitory는 온라인 서버를 의미한다.

 

 

git의 특징

git과 다른 vcs와 구분되는 점은, 스냅샷으로 저장한다는 점이다.

스냅샷이란, 말 그대로 사진처럼 저장한다는 점이다. 

현재 HEAD포인터가 가리키는 커밋을 기반으로 사진을 찍고, 새로운 커밋을 기록할 때,  현재 로컬 컴퓨터와 스테이지 영역과 비교하여 바뀐 점만, 기록한다. 이를 통해 파일의 크기를 줄이는 것이다.

 

Git은 포인터를 통해서 저장한다.

모든 파일을 하나의 주소로 작성하고, 브랜치와, head 등 다양한 포인터를 기록하는 것으로, 실제로 파일의 복잡한 이름으로 파일을 검색하는 것이 아닌, 우리가 알아보기 쉽고 기억하기 쉬운 방법으로 파일을 찾을 수 있도록, 포인터를 둔다. 

 

정리하자면

깃의 기록 저장 방법은 제일 최근 커밋과, 그 전 커밋의 차이점만 을. git이라는 파일에 저장을 하게 된다. (스냅샷처럼)

head와, main과 같은 포인터를 이용해서 현재 보고 있는 위치를 알 수 있다.

 

git command
  • git의 커맨드들
    1. git init : 현재 디렉토리 폴더에 .git이라는 폴더를 생성하고 새로운 레파지토리를 생성한다는 것이다.
    2. git clone 주소 : 깃헙이나 다른 주소를 통해서 레파지토리를 현재 폴더에 다운로드하겠다 (pull)하겠다는 것.
    3. git commit -m “메시지” : 깃 커밋을 한다. 현재 로컬 레파지토리에 변경된 코드를 커밋(올리겠다)는것.
    4. git checkout : 헤드를 옮긴다.
    5. git branch : 현재 노드의 위치를 브랜치라는 이름의 포인터로 가리키고 이를 기억한다. 즉, 현재 버전을 기억하기 위한 표시.( 굳이 안 해도 되지만 이런 경우에는 그냥 해시값으로 찾아야 하는데 이는 상당히 불편하기 때문에 존재하는 방식인 것이다. )
    6. git merge 브랜치명 : 현재 헤드파일이 보고 있는 파일과 브랜치를 병합한다.

 

밑의 링크를 통해 연습해보는 것을 추천한다.

https://git-school.github.io/visualizing-git/#free

 

Visualizing Git

 

git-school.github.io

이 링크를 통해서 실제로 깃이 어떻게 동작하는지 볼 수 있다.

 

반응형