반응형
아래의 그림은 Git 프로젝트를 사용할 때 중심이 되는 transaction을 네가지 단계별로 나타낸 것입니다.
<로컬 환경>
- Working Directory: 현재 작업 중인 Git 프로젝트 파일들이 있는 내 PC의 디렉토리입니다. 평소 작업하듯 자유롭게 프로젝트를 작업할 수 있습니다.
- Staging Area: 커밋할 변경 내역들의 대기 장소입니다. ‘git add’ 명령어를 사용하면 Working Directory의 변경내역을 Staging Area에 올립니다. 명령어 옵션을 통해 이 단계를 생략할 수 있습니다.
- Local Repository: 커밋들이 스냅샷으로 기록된 곳입니다. ‘git commit’ 명령어를 사용하면 Staging Area에 있는 변경내역들을 실제 스냅샷으로 묶어 Local Repository에 올릴 수 있습니다. 즉, 하나의 commit이 하나의 버전의 구분점이 되며 이전 버전에서 해당 버전으로의 변경내역이 담겨 있습니다.
지금까지의 작업은 모두 내 로컬 환경에서 일어납니다. 만약 포맷이나 폴더삭제 등을 통해 내 PC에 있던 git 디렉토리가 사라진다면 버전 정보 역시 잃어버리는 것이죠. 이러한 점은 파일의 사본을 백업본으로 유지하는 앞선 상황과 같습니다. 또한 다른 사람들이 내 프로젝트를 볼 수도 없죠. 이런 위험을 방지하고 다른 환경에서도 참조하기 위해서는 로컬에 있는 커밋들을 원격 서버에 올려야 합니다. Local Repository에 있는 커밋을 리모트 서버에 올리는 명령어가 바로 ‘git push’ 입니다.
<서버 환경>
- Remote Repository: 로컬 PC를 넘어 원격 서버에서 관리되는 저장소입니다. 이 곳에 올라온 커밋은 이제 다른 사람들도 참조 할 수 있습니다(공개된 레포지토리일 경우에만). 커밋 단위로 해당 버전의 프로젝트를 내려받는 등의 행위가 가능합니다. 외부 저장소이기 때문에 로컬 환경의 파일이 손상되더라도 외부 저장소에 올라간 기록은 따로 유지됩니다.
추가적인 기능과 내용은 이후에 찾아보고 정리하여 업로드 하겠습니다!
읽어주셔서 감사합니다 :)
참고자료
https://www.secmem.org/blog/2019/04/10/git_pr/
https://velog.io/@qowhdgn/GIT-GIT%EC%9D%B4%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80
728x90
'Web' 카테고리의 다른 글
[Node.js / mongoose] 데이터 조회에 사용가능한 방법 (find / findOne / findById) (0) | 2022.04.16 |
---|---|
SQL vs NoSQL (MySQL vs MongoDB) (0) | 2022.04.14 |
CORS 는 무엇일까? CORS (교차 출처 자원 공유 방식)에 대한 정리! (0) | 2022.04.10 |
hosting 호스팅이란? 호스팅 개념 정리 (0) | 2022.04.07 |
javaScript Coupling Decoupling 디자인 패턴 / 객체간 의존성 결합도 (0) | 2022.04.03 |