소프트웨어의 변경 히스토리를 관리할 수 있도록 해주는 프로그램
Git은 기본적으로 사용자의 소프트웨어(코드 작업물)과 그 히스토리를 사용자의 컴퓨터에 보관하고 관리합니다. Git은 파일의 과거 시점으로부터 현재 시점까지 어떤 부분이 변경 되었는지를 비교할 수 있고, 단순 텍스트를 기준으로 변화를 비교합니다. 텍스트를 기준으로 변화를 비교한다는 의미는 공백, 빈 줄 등을 모두 포함한다는 것을 의미합니다.
Git이 가장 보편적으로 사용되고 있지만, 버전관리 시스템은 git 외에도 여러가지가 있다.
Git은 특정시점의 파일 상태를 사진 찍어놓듯이 기억한다.
과거 시점의 사진을 다시 볼 수도 있고, 현재 시점의 상태로 다시 돌아올 수도 있다.
Snapshot을 생성하는 행위 (즉, 기록을 남기는 행위)
Git 히스토리는 기본적으로 수 많은 Commit들의 집합이다.
하나의 Commit은 다음 세 가지 정보를 갖고 있다.
줄임말로 Repo, 한국어로 저장소라 부른다.
모든 프로젝트 파일들과 그 파일들의 히스토리가 모여 있는 곳
개인 컴퓨터 혹은 Github과 같은 클라우드 서버에 저장할 수 있다.
현재 위치한 Commit
모든 Commit들은 Branch 내에 존재한다.
하나의 커밋은 여러 Branch에 속할 수 있다.
일반적으로 프로젝트의 기본 브랜치는 master 이다.
클라우드에 저장된 Git 프로젝트를 다운받는 명령어
git clone GIT_REMOTE_ADDRESS
변경 사항 중, 다음 커밋에 추가할 사항들을 선별하는 명령어
git add FILE_OR_DIRECTORY
커밋을 생성하는 명령어
-m 은 커밋 메시지를 함께 추가하는 옵션
git commit -m "MY COMMIT MESSAGE"
현재 브랜치에 다른 브랜치의 수정 내역을 병합하는 명령어
git merge OTHER_BRANCH_NAME
Github과 같은 클라우드에 저장된 Git 프로젝트의 현재 상태를 다운받는 행
git fetch origin
Github과 같은 클라우드에 저장된 Git 프로젝트의 현재 상태를 다운받고 현재 위치한 브랜치로 병합하는 명령어
git fetch + git merge
git pull REMOTE_NAME BRANCH_NAME
Github과 같은 클라우드에 내 컴퓨터의 작업 사항을 업데이트 하는 명령어
등록된 클라우드 주소 닉네임(REMOTE_NAME)과 반영하고 싶은 브랜치 이름(BRANCH_NAME)을 함께 사용해야 한다.
git push REMOTE_NAME BRANCH_NAME
브랜치 목록/생성/삭제 명령어
git branch
git branch BRANCH_NAME
git branch -d BRANCH_NAME
git checkout BRANCH_NAME
git checkout -b BRANCH_NAME
클라우드 주소를 등록하는 명령
등록하는 주소마다 고유 닉네임을 부여해야 한다.
git remote add REMOTE_NAME REMOTE_ADDRESS
git remote remove REMOTE_NAME
현재 위치한 브랜치의 커밋 내역을 확인하는 명령
git log