Git 버전 관리 방법

안태현·2023년 2월 11일
0

Git 기본 설정

  • git config --global user.name "이름"
  • git config --global user.email "이메일"

버전 관리의 큰그림

  1. 깃이 관리하는 세 개의 공간
  • 작업 디렉터리
    => 버전 관리의 대상이 위치하는 공간
    (.git이 있는 디렉터리)
  • 스테이지
    => 깃이 관리하는 가상의 공간
    => 다음 버전이 될 후보가 올라가는 공간
  • 저장소
    => 깃이 관리하는 가상의 공간
    => 버전이 만들어지고 관리되는 공간

기존사항

변경사항

버전이 된 후보 선정

버전을 생성

2. 하나의 버전이 만들어지는 과정

작업 디렉터리 내에서 변경 사항 생성 -> 스테이지로 add -> 저장소로 commit

깃 명령어 정리

  • 기본 명령어

  • git log 명령어

  • git diff 명령어

작업 되돌리기

  1. revert
  • 버전을 되돌린 새로운 버전 만들기

  1. reset
  • 버전을 완전히 되돌리기

1) soft

  • 커밋만 되돌리기

  • 하나의 버전이 만들어지는 과정

    • 작업 디렉터리에서 변경 사항 생성하기
    • 스테이지로 추가하기
    • 저장소로 커밋하기 soft reset

2) mixed

  • 스테이지까지 되돌리기

  • 하나의 버전이 만들어지는 과정

    • 작업 디렉터리에서 변경 사항 생성하기
    • 스테이지로 추가하기 mixed reset
    • 저장소로 커밋하기

3) hard

  • 작업 디렉터리까지 되돌리기

  • 하나의 버전이 만들어지는 과정

    • 작업 디렉터리에서 변경 사항 생성하기 hard reset
    • 스테이지로 추가하기
    • 저장소로 커밋하기
  1. 명령어

git stash 명령어

  1. 임시저장

  1. 명령어
  • git stash
    -> 임시저장한다
  • git stash -m "메세지"
    -> 메세지를 남기고 임시저장한다.
    -> 관용적으로 많이 사용
  • git stash list
    -> 임시저장 내용 확인
  • git stash apply stash{번호}
    -> 임시저장 한 내용 저장
  • git stash drop stash{번호}
    -> 임시저장 한 내용 삭제

브랜치 관리하기

브랜치는 버전의 분기

  1. 브랜치를 사용하는 이유 : 브랜치가 없다면?

  • 서로의 작업과 전혀 관련 없는 부분, 같은 코드를 다르게 수정한 부분 혼재
  • 일일이 수작업으로 합쳐야함
  • 때로는 서로의 코드를 합치다 실수가 생길수도

  1. 브랜치를 사용하는 이유 : 브랜치가 없다면?

  • 시간이 흘러 여러가지 요구 사항이 많은 경우

  1. 브랜치로 문제 해결하기

  • 브랜치는 버전의 분기
  • 브랜치로 버전의 분기를 관리하는 방법
      1. 브랜치를 나눈다
      1. 각자의 브랜치에서 작업한다.
      1. (필요하다면)나눈 브랜치를 합친다

1) 쇼핑몰 예시

=> 이제 같은 부분을 다르게 수정한 부분만 보면 된다.


2) 회사 예시

=> 브랜치는 버전의 분기

  1. 브랜치의 이름 : 최초의 브랜치, master 브랜치

<가장 기본적인, 최초의 브랜치>
지금까지 만든 커밋들은 모두 기본적으로 master 브랜치에 속해 있다.

1) 예시

  • master 브랜치에 커밋이 3개 쌓여있고, foo 브랜치에는 커밋이 5개 쌓여 있다.

2) 예시

  • master 브랜치에는 커밋이 3개, foo 브랜치에는 커밋이 5개, bar 브랜치에는 6개 쌓여있다.

3) 브랜치 작명

  1. 특정 브랜치에서 작업하기 HEAD와 체크아웃
  • HEAD
    • 현재 작업 중인 브랜치의 커밋을 가리킨다
    • 일반적으로 현재 작업 중인 브랜치의 최신 커밋을 가리킨다
    • 한 마디로 "내가 지금 어디에서 작업 중인가"를 가리킨다

  1. 명령어 정리

  1. 병합
  • 병합 전

  • 병합 후

1) 빨리감기 병합(fast-forward merge)

  • foo 브랜치가 뻗어 나오고, foo 브랜치에 커밋이 쌓이고, 병합이 되는 순간까지 가만히 있었다.
  • 그래서 maser 브랜치는 마치 빨리감기 하듯 그저 foo 브랜치에서 추가 된 커밋을 반영하기만 하면 된다.
  • 이렇듯 변함이 없던 브랜치가 마치 빨리감기하듯 브랜치 내용이 업데이트 되는 병합 기법을 빨리감기 병합이라고한다.

2) 커밋

충돌해결하기

  1. 충돌이 발생했을 때 대처법
  • 충동을 해결한다(어떤 브랜치의 내용으

=> 필요한 내용만 남겨두고 다 삭제

profile
새출발

0개의 댓글