Git 이란?

zini9188·2022년 12월 20일

Git

목록 보기
1/2

1. Git은 무엇인가?


  • 쉽게 말해 파일을 관리해주는 프로그램이다.
    1. 파일의 변경 사항을 추적하며, 사용자가 각 파일의 버전을 관리할 수 있게 도와준다.
    2. 파일을 백업할 수 있게 해준다.
    3. 협업자들과 함께 파일을 공유하고, 각자의 작업물을 취합할 수 있게 해준다.

2. Git의 필요성


  • 버전을 관리할 수 있다.

    • 문서가 적고 버전이 적다면 버전 관리에는 어려움이 없을 것이다. 그러나 문서가 100개 1000개로 늘어나고 버전도 그에 맞춰 늘어난다면 관리하기 힘들어진다.
    • Git은 Git이 관리하는 디렉토리에 어떤 문서를 만들면 해당 문서의 버전을 관리할 수 있다.
  • 백업을 할 수 있다.

    • 확실한 것은 우리의 컴퓨터는 언젠가 고장난다는 것이고, 불확실한 것은 우리의 컴퓨터가 언제 고장날지 모른다는 것이다.
    • Git은 우리의 작업물을 온라인 원격 저장소에 백업할 수 있도록 백업 기능을 제공한다.
  • 협업을 할 수 있다.

    • 개인뿐만 아니라 여러명이서 작업을 하는 경우 하나의 작업물의 다른 부분을 각자 작업할 때, 작업물을 공유하고 취합할 수 있도록 도와준다.

3. Git과 Github


Git은 로컬에서 버전을 관리해주는 프로그램이며, Github은 Git을 클라우드 방식으로 구현한 서비스이다.

  • 출처 : designless.net

4. Git의 용어


  • Repository: 저장소를 의미하며, 저장소는 히스토리, branch에 따라 버전을 저장한다. 저장소를 통해 작업자가 변경한 모든 히스토리를 확인 할 수 있다.

  • Working Tree : 저장소를 어느 한 시점을 바라보는 작업자의 현재 시점.

  • Staging Area : 저장소에 커밋하기 전에 커밋을 준비하는 위치.

  • Commit : 현재 변경된 작업 상태를 점검을 마치면 확정하고 저장소에 저장하는 작업.

  • Head : 현재 작업중인 Branch를 가리킨다.

  • Branch : 작업할 때 필요한 영역의 가지 혹은 분기를 만들어 작업할 수 있다.

  • Merge : 다른 Branch와 현재 Branch를 합칠 수 있다.

5. Git 명령어


  • Git 초기화를 통해 해당 폴더의 모든 파일이 Git의 관리를 받게 된다.

    git init

  • 기본 브랜치 이름 변경하기

    git config --global init.defaultBranch <변경할브랜치이름>

    • 이 명령어를 입력하면 git init의 기본 브랜치 이름이 변경 브랜치 이름으로 설정된다.
  • 현재 위치의 브랜치 이름 변경하기

    git branch -m <변경할브랜치이름>

  • .git 디렉토리

    • git init을 진행하면 .git 디렉토리가 생성된다.
    • .파일은 숨김 파일로 ls -al 명령어를 통해 확인할 수 있다.
  • 파일의 상태를 확인하는 명령어

    git status

  • 파일을 스테이징 하는 명령어

    git add .

  • Staging area

    • Local repository에 저장할 파일들이 임시적으로 대기하는 영역을 의미
  • 로컬에 저장하고 버전을 기록하는 명령어

    git commit -m "커밋 내용"

  • commit 내역 확인하는 명령어

    git log

  • git 원격 저장소와 로컬 저장소를 연결하는 명령어

    git remote add origin <복사한 원격 저장소 URL>
    git remote --v

  • 현재까지 커밋한 내용 원격 저장소로 업로드하는 명령어

    git push <원격저장소이름> <브랜치이름>

  • 원격 저장소를 로컬로 복사해오는 명령어

    git clone <원격저장소의클론URL>

  • 원격 저장소에서 로컬로 가져오면서 병합해주는 명령어

    git pull <원격 저장소 이름> <브랜치 이름>

    • clone은 복사만 해오는 것이고 pull은 원격 저장소의 내용을 가져와서 현재 브랜치와 병합(merge)까지 해주기 때문에, 기존에 작업했던 내용은 유지하면서 최신 코드로 업데이트 가능하다.

6. 파일의 상태


  • Tracked
    • 해당 상태의 파일들은 수정되었을 때 Git이 파일 변경 내용을 감지한다.
      • Unmodified
        파일의 수정이 Git에 의해 감지되지 않은 상태
      • Modified
        파일의 수정이 Git에 의해 감지된 상태
      • Staged
        파일이 Staging area에 존재하는 상태
  • Untracked
    • 해당 상태의 파일들은 파일의 내용을 변경하여도 Git이 파일의 내용 변경을 감지하지 못한다.
    • Commit의 과정을 통해 Tracked 상태로 변경 가능하다.
profile
똑같은 짓은 하지 말자

0개의 댓글