* 이 글은 2020. 3. 19. 17:04에 작성되었던 글입니다 *
git 이란?
분산형 버전 관리 시스템
Git은 분산형 버전 관리 시스템이다. 원래는 Linux 소스코드를 관리할 목적으로 개발이 되었다고함.
git을 사용하는 이유는 무엇일까?
일단 프로젝트를 진행할 때 혼자서 모든 개발을 하는 일은 드물다.
많은 사람들과 협업을 통해 프로젝트를 진행하는데 이 때 매번 usb에 옮겨 담거나
혹은 사내 메신저, 메일 등을 통해 코드 파일을 주고 받고한다면 .....
(사실 git을 알기 전까지 학원에서 나 또한 이러고 있었다...ㅎㅎ;; 불편하긴 하더라^^)
또, 개발을 하다가 새로운 기능을 추가하면 좋을거 같아서 추가를 했지만
생각보다 좋은 결과가 나오지 못했다고 가정한다면 기능을 추가하기 전의 버전으로 되돌려 놓아야하는데..
따로 저장해놓은 파일이 없었다... 있다고 해도 파일이 너무 많아서 찾기가 힘들 경우 등..
그.래.서 git을 사용한다~~~!!
git을 이용해서 해당 프로젝트의 파일들을 내 로컬 저장소에 저장할 수 있으며
더불어 버전 관리 측면에서 아주 빛을 발하는것이 바로 git이다 ! 깃 !! 렛츠깃!
브랜치 (branch)
깃에는 브랜치라는 개념이 있는데 브랜치를 통해 작업을 나누어 개발이 가능하다.
예를 들어 개발이 잘 되어가는 도중 하나의 버그를 발견했다면,
마스터 브랜치에서 분리되어 bugFix라는 브랜치를 생성 후 버그를 잡는 작업을 할 수 있다.
위와 같이 브랜치를 활용할 수 있다.
브랜치를 활용하여 원격 저장소에 파일들을 저장하여 관리할 수 있다.
저장소 (repository)
줄여서 repo라고도 합니다.
저장소는 내 컴퓨터에서 관리하는 개인적인 저장소인 로컬 저장소( local repository)가 있고,
프로젝트 전체를 관리하는, 많은 사람들과 공유하는 원격 저장소(remote repository)가 있다.
** 원격 저장소는 Github **
git에서는 우리가 부르는 폴더를 작업트리라고 한다.
작업트리에서 인덱스로, 인덱스에서 커밋을 한 파일들을 푸쉬하면 원격 저장소에 등록이 된다.
* 인덱스는 작업트리와 커밋 실행 전의 저장소이다.
10개의 파일이 있다 가정하고 이 중 2개의 파일만 공유를 하고 싶다면
작업트리에서 해당 2개의 파일만 인덱스에 등록하면 된다.( 스테이징 한다고도 표현)
커밋 (commit)
커밋을 하는 이유는 코드의 변경 내용과 변경한 이유를 덧붙이기 위해서이다.
즉, 원격 저장소로 push하기전에 변경 내용 기록을 하는 것.
빨간 네모 박스에 커밋 내용이 들어가있다.
git bash(혹은 command 환경)에서 사용하는 명령어를 살짝 들여다 보자면
$ git commit -m [수정내용]
이런식으로 쓰인다.
위 사진에서 첫번째 파일은 doumant.txt를 스테이징 한 후, text 파일을 등록했다고 커밋을 한 내역이고
두번째 파일은 newpj.java의 소스코드에 mul 메서드를 추가 했다고 커밋한 내역이다.
물론 커밋한 내용을 수정할 수 도 있다.
일단 오늘은 여기까지 ~~~~ 다음에는 명령어를 정리해야징