[Git] git 정리

studying  · 2 mins read

git 저장소 관련 용어

  • remote 저장소: 인터넷이나 네트워크 어딘가에 있는 저장소(원격 서버에 저장). remote 저장소를 관리하면서 데이터를 저장소에 추가하고(Push) 저장소로부터 내 디바이스(PC)에 데이터를 가져와서 작업 → 다른 사람들과 함께 병렬 작업이 가능

  • local 저장소: 현재 내가 사용하고 있는 내 디바이스(PC)에 있는 저장소. remote 저장소의 파일을 local 저장소로 가져와서(Pull) 작업

  • init: .git이라는 하위 디렉토리를 만든다(해당 디렉토리 안에). 이 폴더가 우리의 로컬 컴퓨터에 존재하는 git 저장소 무슨 디렉토리지? → 내부동작 이해하기

  • clone: remote 저장소를 local 저장소로 복사하는 작업. 프로젝트의 히스토리를 전부 받아올 수 있음

git 공간 분류

  • git repository, staging area, working directory
  • git에는 크게 3가지 공간이 있다(물리적 구분이 아닌 공간의 성격에 따른 추상적인 구분)
  1. working directory: 작업을 하고 있는 로컬 컴퓨터의 공간. sample.txt 파일을 만들었을 때, 파일이 저장되는 공간.
  2. staging area: 커밋할 파일에 대한 정보를 저장하는 공간(사실, 스테이징 에어리어의 정보들도 ‘.git’ 폴더 안에 있음)
  3. git directory: staging area의 파일들을 커밋하여 영구적인 스냅샷을 저장하는 장소(.git directory)

![11](https://u44

  • git add sample.txt 명령어를 사용하면 sample.txt 스테이징 에어리어에 올라간다. 이때, 워킹 디렉토리의 파일을 옮기는 것이 아니라 복사한다고 생각해야함

22

33

  • git commit sample.txt 명령어를 사용하여 staging area에 있는 파일들이 최종적으로 git 저장소에 저장되어 영구적인 스냅샷으로 저장됨

파일의 상태 분류

44

  • git에 의해 관리되는 파일들이 가지는 상태(status)

  • 워킹 디렉토리의 파일은 먼저 크게 Untracked, Tracked의 두 가지 상태로 나뉜다.

    • untracked
      • 파일을 새로 만들 경우 → git이 파일을 추적하지 않는 상태
    • tracked

      • 이후 git add 명령어 → staging area에 저장되어 git이 파일을 추적하는 ‘tracked’ 상태
      • 파일을 새로 만들고 git add를 한 후에 직접 **git rm –cached ** 명령어를 이용하지 않는 이상 untracked 상태로 돌아올 수 없음
      • tracked 상태의 파일들은 다시 크게 Unmodified, Modified, Staged 3개의 상태로 나뉜다.

        • unmodified
          • staging area에 있는 파일들을 commit → 해당 파일들은 하나의 커밋으로 저장된 후, 파일은 unmodified 상태로 내려옴
        • modified

          • unmodified 상태의 파일들을 수정 → modified 상태
        • staged
          • 이후 다시 git add 명령어 → staged 상태로 올려준 후 커밋을 하는 과정을 반복
  • git status 명령어 실행 시

    • Untracked files 명단에 있는 파일들이 Untracked 상태의 파일이다.
    • Changes to be committed 명단에 있는 파일들이 Staged 상태의 파일이다.
    • Changes not staged for commit 명단에 있는 파일들이 Modified 상태의 파일이다.
    • ‘unmodified’ 상태의 파일은 화면에 출력되지 않음
  • 하나의 파일이 두 개의 상태를 가질 수 있음

    • git add → 파일 수정 시 Staging Area에 있는 파일에는 수정내용이 반영되지 않아 ‘staged’ 와 ‘modified’ 상태를 가진다(staging Area에 있는 파일은 워킹 디렉토리의 파일이 옮겨지는 것이 아니라 복사되는 것).
  • modified 파일 되돌리기

    • git checkout – sample.txt → 워킹 디렉토리의 modified 특정 파일을 가장 최근 커밋 버전으로 되돌릴 수 있음(수정 사항을 제거), 이 기능은 되돌릴 수 없으니 주의해야 함!

references

  • https://seonkyukim.github.io/git-tutorial/git-status/
  • https://seonkyukim.github.io/git-tutorial/git-status/