티스토리 뷰

Dev/Git

[Git] add/commit/push 의 차이: Git 파일의 상태

나미의 로그포스 2023. 5. 1. 16:49

add/commit/push 세 명령어의 차이를 이해하려면 우선 Git이 파일을 어떻게 관리하는지 이해해야 합니다.

 

1. Git 파일의 상태 

 

 

 

Git은 파일을 크게 Committed, Modified, Staged의 세 가지 상태로 관리합니다.

 

 

Committed 데이터가 로컬 저장소에 안전하게 저장됨
Modified 수정한 파일을 아직 로컬 저장소에 커밋하지 않은 상태
Staged 수정한 파일을 곧 commit할 것이라고 표시한 상태

 

 

Git Directory(Repository)는 현재 작업하는 디렉터리에서 파일을 가져와 Working Directory를 만듭니다.

 

1. Working Directory에서 파일을 수정
2. 수정한 파일을 git add 로 Staging Area에 올림
3. Staging Area에 있는 파일들을 git commit으로 Repository에 영구적으로 저장

 

쉽게 말해 Staging Area 는 현재 작업하고 있는 디렉토리와 repository에 저장할 변경 이력 사이의 중간 단계 라고 할 수 있습니다.

 


2. add/commit/push 의 차이

 

 

git add 다음 변경을 기록할 때 까지 변경 내용을 모아놓기 위해 사용
→ Staging Area에 변경 파일 올리기
git commit 변경 내용을 로컬 repository에 기록(내 컴퓨터의 로컬 저장소)
git push 변경 내용을 원격 repository에 기록 (github)

 

 

git add 명령어를 통해 스테이징 영역으로 변경 내용의 일부 혹은 전부를 이동시킬 수 있고, git status 명령어를 통해 현재 Working Directory와 Staging Area의 상태를 확인할 수 있습니다.

그리고 이렇게 스테이징 영역에 들어간 변경 내용을 git commit으로 로컬 저장소에 기록, git push로 원격 저장소에 업데이트할 수 있습니다.

 

따라서 Git은 위 명령어의 구분을 통해 변경 내용을 한 번에 전부 기록/반영하는 것이 아니라, 필요에 따라 조금씩 나누어 기록할 수 있습니다.

 

 

 

출처 - https://blog.osteele.com/2008/05/my-git-workflow/

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함