티스토리 뷰
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은 위 명령어의 구분을 통해 변경 내용을 한 번에 전부 기록/반영하는 것이 아니라, 필요에 따라 조금씩 나누어 기록할 수 있습니다.
'Dev > Git' 카테고리의 다른 글
[Git] gitignore 설정: 프로젝트에서 제외할 파일 정의하기 (0) | 2023.05.01 |
---|---|
[Git] Window에서 Git 시작하기: Github 어떻게 쓸까? (설치, git clone) (0) | 2023.04.27 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- vsphere
- Route53
- github
- 에티버스러닝
- aws cli
- Azure DNS
- EKS
- VM Tools
- Linux
- Windows Server
- rocky9
- kubernetes
- ycampus
- IAM
- Google Cloud DNS
- kubectl
- VPC
- Git
- Vmware
- Window Server Manager
- AWS
- RECA
- Docker
- Local Zones
- k8s
- IAC
- 클라우드 DNS 서비스
- redhat
- Ansible
- Route53 비용 정책
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함