전체 방문자
오늘
어제
모달조아
Better than yesterday
모달조아
  • 분류 전체보기 (147)
    • PS (86)
      • BOJ (79)
      • 프로그래머스 (6)
    • 이론 (41)
      • 자료구조 (2)
      • 알고리즘 (8)
      • 데이터베이스 (1)
      • 운영체제 (1)
      • 네트워크 (3)
      • 디자인패턴 (7)
      • Java (13)
      • Spring (4)
      • JPA (1)
      • Git (1)
    • 개발 (18)
    • 프로젝트 (1)
    • 기록 (0)
      • 후기 (0)
    • etc (1)

최근 글

티스토리

hELLO · Designed By 정상우.
모달조아

Better than yesterday

Git 버전 관리
이론/Git

Git 버전 관리

2021. 7. 18. 05:36

버전관리에 들어가기에 앞서 우선적으로 세 가지 개념을 먼저 정리해야한다.

  • working tree : 사용자가 파일을 만들거나 수정하는 디렉토리이다.
  • staging area : working tree에 있는 파일들 중 버전으로 만들고자 하는 것들을 저장하는 곳이다.
  • repository : 만들어진 버전들을 저장하는 곳이다.

버전관리에 자주 사용하는 명령어들과 함께 과정을 정리해보면,

  • git init : 디렉토리를 git을 사용할 수 있도록 git repository로 지정하고 .git이라는 숨김폴더를 생성한다.
  • git status : working tree의 상태를 보여준다.
  • git add : 버전으로 만들고자 하는 파일을 staging area에 추가한다.
  • git commit : staging area에 있는 파일을 버전으로 만든다.
  • git log : 버전 기록을 보여준다.
    -git log --stat : 각 버전마다 어떤 파일들이 연관되어 있는지 보여준다.

한 눈에 그림으로 정리하자면, 위와 같다.

버전관리를 연습해보는 과정에서 한가지 시행착오가 있었다.
git bash에 이름과 이메일을 등록하지 않고 이용하여 git commit을 할 때, 아래와 같은 오류가 떴었다.

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

위의 방식으로 이메일과 이름을 등록해주면 간단히 해결된다.

버전관리의 CRUD를 한번에 정리해보자.

Creategit init디렉토리를 git을 사용할 수 있도록 git repository로 지정하고 .git이라는 숨김폴더를 생성한다. 버전 관리를 시작하겠다는 의미이다.
git add버전으로 만들고자 하는 파일을 staging area에 추가한다.
git commitstaging area에 있는 파일을 버전으로 만든다.
-am : add와 commit과정을 한번에 해준다. 단, untracked 파일은 제외한다.
Readgit statusworking tree의 상태를 보여준다.
git log버전 기록을 보여준다.
git diff버전 간의 파일 내용을 비교한다.
Updategit checkout해당 버전id로 돌아간다. 
master를 지정하면 원래의 장소로 돌아간다.
Deletegit reset버전을 삭제한다. 지정한 id의 버전으로 돌아가고 이후 내역을 삭제한다.
--hard : commit된 파일들을 working tree에서 삭제한다. 단, untracked 파일은 제외한다.
--mixed : commit된 파일들을 working tree로 돌려놓는다.
--soft : commit된 파일들을 staging area로 돌려놓는다.
git revert이전 커밋 내역을 삭제하지 않고 그 버전으로 되돌아간다.
revert 했다는 내역이 남는다.
순차적으로 되돌리지 않으면 충돌이 생긴다.
저작자표시 (새창열림)
    모달조아
    모달조아

    티스토리툴바