Git 이란 ?

Park Jae Hong·2022년 7월 22일
0

Git

: git 프로젝트에 담겨있는 데이터들은 파일 시스템 상의 스냅샷(SnapShot)으로 볼수 있다.

❗ 스냅샷이란 ?

특정 시간에 데이터 저장 장치의 상태를 별도의 파일이나 이미지로 저장하는 기술
이를 이용해 데이터를 저장하면 유실된 데이터 복원과 일정 시점의 상태로 데이터를 복원할 수 있다.

❗ git은 commit 하여 적용할 때의 순간을 중요시한다는 특징 있어, 파일 자체를 저장한다기 보다 수정내역을 저장한다 것이 더 맞는 표현이다. 그래서 git에서 메모리 적으로 효율적으로 관리할 수 있는 것이다.

동작 원리

Working Directory : 작업할 파일이 있는 디렉토리

Git Directory : Git 프로젝트의 메타 데이터와 데이터 정보를 저장하는 디렉토리 (로컬에 있는 git. 폴더를 의미 함.)

Staging Area : Commit을 수행할 파일들이 올라가는 영역 ( git. 폴더 안에있는 별도의 영역, add 명령을 했을 때 올라가는 영역)


git 명령어

브랜치란?

: 여러 개발자들이 동시에 다양한 작업을 할 수 있게 만들어 주는 기능이 바로 '브랜치(Branch)' 입니다.
( 각자 독립적인 작업 영역(저장소) 를 만드는 것. )

  • Head : 현재 작업중인 Branch를 가리킨다. 
  • add, commit, push, pull 등
  • $ git diff <브랜치이름><다른 브랜치이름>
    : 변경 내용과 merge 전에 바뀐 내용을 비교할 수 있음

  • $ git checkout -b <브랜치이름>
    : 브랜치 생성 & 이동

  • $ git reset / $ git revert
    : 둘다 이전 commit 단계로 되돌리는 명령어
    (다른 사람간의 코드 공유의 유(revert)무(reset)에 따라서 달라짐)
    origin에 올리지 않고 로컬에 커밋이 머물러있거나 올라갔어도 나만 해당 브랜치를 사용한다면 reset 사용가능
    revert는 reset과 다르게 커밋을 삭제하는 것이 아닌 커밋을 추가합니다.


기존 사용하던 git 관리 방식

: Project를 진행하는 인원 만큼 각각의 Branch를 생성하여 관리.

문제점

: 무작정 브랜치를 늘려버리면 commit 관계가 복잡해져 나중에는 누가 commit 한지 알 수 없게 된다는 문제점이 있다.

문제해결 ➡ git flow

git Flow

: git을 관리하기 위한 전략 중 하나

Git branch의 종류는 아래 다섯가지가 존재합니다.

  • master : 제품으로 출시될 수 있는 브랜치
  • develop : 다음 출시 버전을 개발하는 브랜치
  • feature : 기능을 개발하는 브랜치
  • release : 이번 출시 버전을 준비하는 브랜치
  • hotfix : 출시 버전에서 발생한 버그를 수정 하는 브랜치

💡 Point

  • git flow 라는 방식이 무조건 적인 방식은 아니고 상황에 맞게 나만의 git flow를 구축하는 것

git flow에 대한 자료


참고

https://choseongho93.tistory.com/189
https://www.youtube.com/watch?v=66c9QBXM2Fs&t=106s
https://kyounghwan01.github.io/blog/etc/git/git-reset-revert/#revert
https://bonjourpark.tistory.com/12

profile
The people who are crazy enough to think they can change the world are the ones who do. -Steve Jobs-

0개의 댓글