[git] 버전관리와 add, commit, push 다시 이해하기

건너별·2022년 7월 6일
0

git

목록 보기
3/4
post-thumbnail

본 포스팅은 인프런 강의 빠르게 git - 핵심만 골라 배우는 Git/Github을 참고하여 작성되었음을 밝힙니다.

Git이란?

  • 버전관리 시스템

Git 기능들의 당위성

POINT 1. 버전관리엔 협업이 필요하다.(각자 맡은 파트를 작업)
POINT 2. 되돌리는 과정도 필요하다.
POINT 3. 백업은 필수다!
POINT 4. 그 중에서도 유의미한 변화를 중심으로 효율적으로 백업해야 한다.

버전관리를 위한 3개의 공간


[https://itnext.io/git-concepts-for-newcomers-part-2-git-repository-working-tree-and-staging-area-a2e720bf3528]

1. Working Dierctory

  • 코드작업을 하는 공간
  • 변경이 생기는 공간
  • 파일이 생성/수정/삭제됨

2. Staging Area

  • 버전이 될 후보들이 올라오는 공간
  • Working Directory에서 선별

3. Repository

  • 버전들이 저장된 공간

Github

  • 버전을 저장/관리해주는 서비스
  • 상기 과정은 모두 Local 저장소에 해당
  • 원격 Repository로 "push" 하게 됨

되돌리기!

[https://levelup.gitconnected.com/confused-with-the-difference-between-git-reset-soft-mixed-hard-3285e8b5cd0f?gi=69e0b3ad4970]

$ git reset ~
  • 수정한것까지 통째로 돌리고싶다면 ( repo-> woring directory 변화까지 모두)
$ git reset --hard HEAD^
  • add한것까지 적당히 돌리고 싶다면 (staging area -> Working directory)
$ git reset --mixed HEAD^
  • commit한 것만 살짝쿵 돌리고 싶다면(repo -> staging area )
$ git reset --soft HEAD^
  • HEAD : 가장 최근 버전(커밋)으로부터
  • ^ : 하나를 되돌린다

기타 명령어

  • git log : 변경 내역

- git revert : reset과 유사하지만
1. reset은 되돌린 버전 이후의 버전들이 모두 사라지는 반면, revert는 그대로 남아있음
2. reset은 시간을 되돌리는 거고, revert는 원하는 커밋만 없어진 새로운 커밋을 만들어낸다고 생각하면 됨
3. reset보단 revert가 내역을 알 수 있어 안전함
4. reset은 history를 깔끔하게 하고 싶을때 더 적절함

  • git diff : 변경 내역들끼리 비교 결과
profile
romantic ai developer

0개의 댓글