Updated:

Git 기본 명령어를 정리한 두번째 글입니다.

1. git 작업 구조

git은 세가지 작업 영역을 가지고 있습니다.

  • Working directory : Tracked(관리 대상) 파일들이 위치하는 영역
    • 지정된 디렉토리에서 .git 폴더를 제외한 공간
    • 작업된 파일이나 코드가 저장되는 공간
  • Staging area : commit할 대상 파일들이 위치하는 영역
    • .git 폴더 하위에 파일형태로 존재(index)
  • Repository : committed 파일들이 위치하는 영역
    • .git 폴더에 이력관리를 위한 모든 정보가 저장, 관리됨

image

https://wikidocs.net/149672

git은 워킹 디렉토리의 파일을 Tracked(관리대상)와 Untracked(관리대상 X)로 나눕니다. Tracked 파일은 이미 스냅샷에 포함되어 있는 파일로, Unmodified(수정하지 않음)와 Modified(수정함), 그리고 Staged(커밋으로 저장소에 기록할) 상태 중 하나입니다. 즉, Tracked 파일은 Git이 알고 있는 파일입니다.

그리고 나머지 파일은 모두 Untracked 파일입니다. Untracked 파일은 워킹 디렉토리에 있는 파일 중 스냅샷이나 Staging Area에 포함되지 않은 파일입니다.

새로운 파일이 Working directory에 추가되면 그 파일은 기존 Tracked 대상이 아니기 때문에 Untracked 상태가 됩니다. 이 파일을 git add 명령으로 Staging area로 이동시키면 Staged 상태가 됩니다. Staged 상태인 파일을 대상으로 git commit 명령을 사용하면, 파일은 Committed 상태가 됩니다.
이 파일은 관리 대상에 추가되었기 때문에 Tracked이며 Unmodified 상태가 됩니다. 이 파일이 수정되면 Modifed 상태가 되고, 변경사항을 기록하려면 다시 Staged, Committed 상태를 거치게 됩니다.

2. git 명령어

  • git status : git이 인식하고 있는 상태정보 출력
  • git status -s 혹은 git status --short: 상태정보 간략히 츨력

  • git add [파일명] : 수정사항이 있는 파일을 Staging area로 올리기
  • git add [디렉토리명] : 수정사항이 있는 디렉토리 내 파일 전체를 Staging area로 올리기
  • git add . : Working directory 내에 수정사항이 있는 모든 파일들을 Staging area에 올리기
  • git reset [파일명] : Staging area에 올렸던 파일 내리기

  • git commit : commit
  • git commit -m [메시지] : 메시지를 추가하여 commit


Reference


https://wikidocs.net/149672
https://git-scm.com/book/ko/v2/Git의-기초-수정하고-저장소에-저장하기

Tags:

Categories:

Updated:

Leave a comment