Git 주요 개념과 명령어 정리

GY·2021년 11월 4일
0

Git

목록 보기
3/13
post-thumbnail

🏈 Git

소프트웨어의 변경 히스토리를 관리할 수 있도록 해주는 프로그램

  • 파일의 변경 사항 추적
    • 누가 언제 무엇을 수정 했는지
    • 특정시점/버전으로 이동
  • 협력 개발 서포트

Git은 기본적으로 사용자의 소프트웨어(코드 작업물)과 그 히스토리를 사용자의 컴퓨터에 보관하고 관리합니다. Git은 파일의 과거 시점으로부터 현재 시점까지 어떤 부분이 변경 되었는지를 비교할 수 있고, 단순 텍스트를 기준으로 변화를 비교합니다. 텍스트를 기준으로 변화를 비교한다는 의미는 공백, 빈 줄 등을 모두 포함한다는 것을 의미합니다.

Git이 가장 보편적으로 사용되고 있지만, 버전관리 시스템은 git 외에도 여러가지가 있다.

  • Apache Subversion (SVN)
  • Mercurial
  • Team Foundation Server (TFS)

🏈 주요 개념

Git이 코드를 기억하는 방법 - Snapshots

Git은 특정시점의 파일 상태를 사진 찍어놓듯이 기억한다.
과거 시점의 사진을 다시 볼 수도 있고, 현재 시점의 상태로 다시 돌아올 수도 있다.

Commit

Snapshot을 생성하는 행위 (즉, 기록을 남기는 행위)
Git 히스토리는 기본적으로 수 많은 Commit들의 집합이다.
하나의 Commit은 다음 세 가지 정보를 갖고 있다.

  • 이전 Commit (Parent Commit)
  • 이전 Commit과 비교한 수정 내역
  • Commit Hash (굉장히 복잡한 알고리즘으로 생성한 고유 아이디 값)

Repository

줄임말로 Repo, 한국어로 저장소라 부른다.
모든 프로젝트 파일들과 그 파일들의 히스토리가 모여 있는 곳
개인 컴퓨터 혹은 Github과 같은 클라우드 서버에 저장할 수 있다.

현재 위치한 Commit

Branch

모든 Commit들은 Branch 내에 존재한다.
하나의 커밋은 여러 Branch에 속할 수 있다.
일반적으로 프로젝트의 기본 브랜치는 master 이다.


🏈 Commands

git clone

클라우드에 저장된 Git 프로젝트를 다운받는 명령어
git clone GIT_REMOTE_ADDRESS

git add

변경 사항 중, 다음 커밋에 추가할 사항들을 선별하는 명령어
git add FILE_OR_DIRECTORY

git commit

커밋을 생성하는 명령어
-m 은 커밋 메시지를 함께 추가하는 옵션
git commit -m "MY COMMIT MESSAGE"

git merge

현재 브랜치에 다른 브랜치의 수정 내역을 병합하는 명령어
git merge OTHER_BRANCH_NAME

git fetch

Github과 같은 클라우드에 저장된 Git 프로젝트의 현재 상태를 다운받는 행
git fetch origin

git pull

Github과 같은 클라우드에 저장된 Git 프로젝트의 현재 상태를 다운받고 현재 위치한 브랜치로 병합하는 명령어
git fetch + git merge
git pull REMOTE_NAME BRANCH_NAME

git push

Github과 같은 클라우드에 내 컴퓨터의 작업 사항을 업데이트 하는 명령어
등록된 클라우드 주소 닉네임(REMOTE_NAME)과 반영하고 싶은 브랜치 이름(BRANCH_NAME)을 함께 사용해야 한다.
git push REMOTE_NAME BRANCH_NAME


🏈 git branch

브랜치 목록/생성/삭제 명령어

브랜치 목록

git branch

브랜치 생성

git branch BRANCH_NAME

브랜치 삭제

git branch -d BRANCH_NAME

브랜치 이동

git checkout BRANCH_NAME

브랜치 생성 & 이동

git checkout -b BRANCH_NAME


🏈 git remote

클라우드 주소를 등록하는 명령
등록하는 주소마다 고유 닉네임을 부여해야 한다.

등록

git remote add REMOTE_NAME REMOTE_ADDRESS

삭제

git remote remove REMOTE_NAME


🏈 git log

현재 위치한 브랜치의 커밋 내역을 확인하는 명령
git log

Reference

profile
Why?에서 시작해 How를 찾는 과정을 좋아합니다. 그 고민과 성장의 과정을 꾸준히 기록하고자 합니다.

0개의 댓글