깃(Git)-버전관리

Future·2022년 2월 23일
0

목록 보기
1/12
post-thumbnail
post-custom-banner

Git

정보의 버전을 관리해주고 백업, 협업을 가능하게 해주는 도구

GUI vs CLI

GUI(Graphic User Interface) - 말 그대로 GUI를 이용하여 시스템을 제어하는 방법
CLI(Command Line Interface) - 명령어를 입력하여 시스템을 제어하는 방법

POSIX CLI(Portable Operating System Interface)

유닉스 계열(Linux, Unix, MacOS) 운영체제들을 제어하기 위한 표준화된 방식이다. 우리가 많이 사용하는 윈도우는 GUI환경에서 시스템을 제어하고, GIT을 설치하여 Git Bash라는 에뮬레이터를 활용하면 POSIX CLI를 이용해서 시스템을 제어할 수 있다.

버전관리의 상태


Working Tree : 버전으로 만들어지기 전 단계의 파일들
Staging Area : Working Tree의 파일들 중 버전 관리할 파일들이 있는 공간
Repository : 버전이 저장되어 있는 곳 (.git 파일이 레파지토리임)

버전관리에서 사용하는 기본 명령어

  • git init : 현재 위치에 있는 디렉토리를 깃을 이용해 버전관리 하겠다고 지정하는 명령어.
    **이후 .git파일이 생기는데, 이 곳에 버전이 기록되기 때문에 지우면 안된다.
  • git status : 현재 디렉토리의 버전 상태.
    +No commits yet - 아직 버전이 없다.
    +Untracked files - 깃이 버전관리 하고있지 않은 파일들(Working Tree에 있는 파일들 중 한번도 버전관리 안한 파일.)
    +빨간색 파일이 Working Tree에 있는 파일들
  • git add 파일명 : 해당 파일을 Staging Area로 올린다. (git add . 하면 현재 디렉토리 밑에 모든 파일들을 Staging Area로 올린다.
    +Changes to be committed - 커밋 될 것들. 즉, Staging Area에 있는 버전관리될 파일들
  • git commit -m "버전 내용(commit message)" : Staging Area에 있는 파일들의 버전을 만들어서 Repository에 넣는다.
  • git log : commit한 기록 보여준다. *해당 화면 나가려면 q 누르기
  • git log --stat : 여러개의 파일을 그룹핑하여 버전관리한 기록을 보여준다.
    +git log --stat 명령어를 입력하면 아래와 같이 출력된다. 해석을 해보자면, 아래에서부터
  1. test1.txt와 test2.txt에 각각 세 줄, 네 줄의 텍스트가 삽입되어 first라는 commit message로 commit 되었다.
  2. test1.txt에서 한 줄이 삭제되어 second라는 commit message로 commit 되었다.
  3. test2.txt에서 한 줄의 삽입과 세 줄의 삭제가 일어나 thirf라는 commit message로 commit 되었다.
  • git diff : 파일을 수정한 후, 실행할 수 있다. Repository에 있는 마지막 버전과 방금 수정하여 Working Tree로 올라간 새로운 상태와 비교하여 차이점을 보여준다.
    +git diff 명령어를 입력하면 아래와 같이 출력된다. 해석을 해보자면,
    이전까지 저장된 버전과 비교하여 asfasdfasf가 삭제되었고 4가 추가되었다.
  • git checkout 버전 : 버전을 이동하며 의미있는 버전으로 디렉토리를 되돌릴 수 있다. (매우중요)
  1. 현재 HEAD가 master(가장 최신 버전)을 가리키고 있다. 여기서 두번째 버전인 f990~으로 이동하고 싶으면 git checkout f990~de2 명령어를 사용하면
  2. 이렇게 HEAD가 두번째 버전으로 이동하고, 파일들의 내용도 두번째 버전으로 모두 바뀐다. 여기서 다시 최신 버전으로 돌아가고싶으면 git checkout master 명령어를 이용하면
  3. 다음과 같이 HEAD가 다시 master를 가리키고 파일의 내용도 가장 최신 버전으로 돌아온다.
  • git commit : nano editor로 들어가서 여러줄의 commit message를 입력할 수 있다.
    ++에디터 변경 : git config --global core.editor "nano"
  • git reset --hard 버전 : 해당 버전 이후 버전들을 삭제한다. (사용시 주의!!)
  1. git reset --hard 04dc~ 명령어를 입력하면 04dc~버전으로 리셋. 즉, 04dc~이후 버전들을 삭제한다.
  2. 그 결과 master가 04dc~가 되었다.

추가적으로..필요할 때 검색할 것들

diff tools - 소스코드 비교 tool
.gitignore - 버전관리 하고싶지 않은 파일 관리
tag - commit id에 이름을 붙여서 중요 버전을 더 쉽게 찾을 수 있음.

**생활코딩님의 유튜브 강의를 기초로 정리한 글

profile
Record What I Learned
post-custom-banner

0개의 댓글