1. GIT 기초

chaeyoung·2023년 11월 24일
0

GIT

목록 보기
1/2

참고

GIT ?

  • file을 tracking하는 방식
  • version control system
  • free & open control system

GIT의 3대 목적

  • version
  • backup
  • collaborate

Github ?

  • user가 file을 upload하는 공간(따라서 기술 스택이 아니다.)

repogitory ?

  • git이 Monitoring하고 있는 folder

Commit ?

  • record(기록), point in time, version
  • 변화의 시점을 정리하기 위해 사용
  • 회사마다 다르지만 보통 10개 변화 또는 20개의 변화 마다 commit 을 해서 변화의 시점들 저장
    => 변화 이후 에러가 날경우 변화 이전의 시점으로 되돌릴 수 있다.
  • 어떤 파일(or 폴더)가 언제 어디서 바뀌었는지 알기위해 사용

3. Git Directory(Local Repository)

  • 파일들이 커밋된 곳으로, 변경된 파일들에 대한 스냅샷을 가지고 있는 공간
  • Staging Area를 거쳐 만들어진 버전들이 저장된 공간

Version 관리

version 관리 시작

  • 명령어: git init

    .git이란?

    • git repogitory (repogitory tracking's information)

git 현재 상태 명령어

  • git status

version 만들기

참고 https://www.gyanblog.com/git/practical-guide-how-work-git-basic-commands-workflows

working flow

  • Git workflow(Git Area)는 기본적으로 3단계로 나눠져 있다.

Working tree

  • 현재 작업중인 area
  • 버전화 되기전 상태의 area

Staging Area

  • 버전을 만들기 위해 준비 중인 directory 및 files을 잠시 저장하는 area
  • 변경사항이 있는 파일들을 선택해 커밋할 수 있도록 지정하는 공간

    staging area 명령어: git add (파일 및 디렉토리 이름)

Repository

  • Staging Area를 거쳐 만들어진 버전들이 저장된 공간

    Repogitory에 version 생성 명렁어

    git commit -m "(message 입력)"

add와 commit 동시 명령어

git commit -am "(Message)"
(단, 신규 파일은 add가 자동으로 되지 않기 때문에 해당 명령어가 적용되지 않는다.)

git version log 확인 명령어

git log

version에 관련된 파일 확인

git log --stat

git editor 설정

git config global core.editor "(사용할 editor 이름)"

version간의 차이점 비교

  1. git diff (마지막 버전과 수정본의 차이점 비교) => 버전화 전의 최종 검토
  2. git reset --hard => 최종 검토후 수정 전(즉, 마지막 버전)으로 return
  3. git log -p => 버전간의 차이점 비교

version간 이동

  • git checkout [version_ID]
    => 해당 버전이 만들어진 시점으로 이동
    => HEAD가 해당 version을 가리킨다.

  • 최신 version으로 돌아가기
    git checkout [master](branch 이름)

삭제

git reset --hard [ID_이름]

  • 정확이는 삭제가 아니라 해당 버전의 in the time(즉, 시점)이 되겠다는 의미
  • --hard: 완전히 삭제
  • --soft, --mixed: 완전히 삭제는아니고 돌아갈 여지를 남기는 것

버전 되돌리기

git revert [현재 위치하는 version_ID]

  • 현재 버전에서 바로 이전 단계의 버전으로 되돌아간다.
  • 정확히는 되돌아간 시점으로 돌아가는 것이 아닌 이전 시점과 같은 상태의 새로운 버전을 생성한다.
  • 즉, 현재 버전에서 되돌아갔을 뿐 삭제를 한것은 아니다!
  • 한번에 여러 단계의 version들을 revert를 할 수 없다.
profile
안녕하세요! 풀스택 개발자가 되고싶은 윤채영입니다. 제 블로그에 방문해주셔서 감사합니다!~~

0개의 댓글