티스토리 뷰
반응형
1. Git : 분산형 버전 관리 시스템
- 분산형 : 로컬 / 원격 저장소, 또는 Workflow 별 분산 관리가 가능
- 버전 관리 : 어떤 정보에 대해 여러 버전을 관리. 이 경우, '주로' SCM(Source Code Management)을 지칭
2. 용어 정리
- Repository : 파일 / 또는 폴더를 저장하는 공간이며, 버전 관리를 지원.
- .psd, .pptx 또한 소스 코드와 마찬가지로 파일 형태로 저장되므로 Git을 이용한 버전 관리가 가능.- Remote Repository : 파일을 원격 서버에서 관리하는 경우, 팀원 간 공유를 위해 사용하는 저장소
- 서버와 Local의 물리적인 위치를 통한 구분은 아니다! 논리적인 구분임을 알아두자.
- git clone을 통한 기존 저장소 복사가 가능
- Local Repository : 내 PC에서 작업하는 경우, 파일이 저장 / 버전 관리되는 로컬 저장소
- 기개발 중인 프로젝트 디렉토리로부터 git init을 사용하여 Local Repo. 생성이 가능
- Remote Repository : 파일을 원격 서버에서 관리하는 경우, 팀원 간 공유를 위해 사용하는 저장소
- 두 저장소 형태 중 반드시 택일하여 사용하는 구조는 아니다.
- 협업하는 경우, 일반적으로 자신의 PC에서(Local Repo.) 버전 관리를 통해 작업하다
이를 팀원들과 공유할 경우(또는 공유 받고자 하는 경우) 원격 저장소를 활용한다.
- 협업하는 경우, 일반적으로 자신의 PC에서(Local Repo.) 버전 관리를 통해 작업하다
- worktree : 실제로 작업 중인 디렉토리
- index(stage area) : commit이 실행되기 전, Repository와 worktree 사이에 존재하는 공간
- commit을 위해서는 파일 변경 이력(작업 이력)을 index에 반영하는 작업이 필요하다.
- 이렇듯 선택적으로 파일 변경 이력을 index에 반영하는 작업은 staging이라고도 함!
- git add : index에 파일 내용을 추가
- 해당 명령어는 worktree 상의 현재 내용(contents)에 따라 index를 업데이트한다.
- 이는 다음에 있을 commit에 반영하기 위해 준비하는 과정이기도 함!
- git commit : 저장소에 변경 이력을 반영.
- 새로운 commit을 생성하는 것은 index의 현재 내용(contents)과 입력한 log message를 포함한다.
- commit은 변경 이력을 실제로 반영하는 작업이므로, 자신의 작업을 설명할 log message를 적절히 입력하는 것이 좋다.
3. git의 파일 상태
- Repository의 파일 상태를 보기 위해서 git status 명령어를 활용할 수 있다.
- Worktree의 파일들은 Tracked와 Untracked로 구분된다.
- Tracked : Git이 추적하는 관리 대상이며, git clone 등으로 동기화한 스냅샷에 포함되어 있는 상태
- Unmodified : Git이 추적하는 파일 중, 수정되지 않은 상태. git clone 직후 모든 파일의 초기 상태이기도 하다!
- Modified : Git이 추적하는 파일을 수정했을 때의 상태.
- 우리는 Tracked이자 Modifed인 파일들을 관리하기 위해 해당 파일을 Staged > Commit할 필요가 있다.
- Staging 작업을 생략하고 싶다면 git commit -a 명령어를 활용한다. 수정된 파일이 모두 commit된다!
- Untracked : 스냅샷 / index에 모두 포함되지 않은 상태.
- Tracked : Git이 추적하는 관리 대상이며, git clone 등으로 동기화한 스냅샷에 포함되어 있는 상태
예시 :
- 특정한 저장소를 git clone하여 worktree에 스냅샷을 가져온다.
- 모든 파일은 Tracked - Unmodified상태가 된다.
- 특정 파일을 수정할 경우 Tracked - Modified 상태가 되며, git add 등을 통해 이를 Index에 등록하는 과정을 반복한다.
- git commit을 통해 index의 파일을 Repository에 반영하며, 파일들은 다시 Tracked - Unmodified상태가 된다.
- 작업 중 새로운 파일을 생성했을 경우, git add를 통해 index에 등록하기 전까지 Untracked 상태를 유지한다.
- 또는 일부 파일을 추적하지 않기 위해 .gitignore에 파일들을 명시적으로 등록해도 좋다.
참고 : https://git-scm.com/
'Dev.' 카테고리의 다른 글
[Ansible] regexp 및 $(달러) 기호 이스케이프 (0) | 2021.01.05 |
---|---|
[Eureka] Eureka Basic (0) | 2020.12.14 |
[ThymeLeaf] th:if와 th:each 함께 사용하기 (0) | 2020.11.19 |
[C] 간단한 개발 사이트 (0) | 2020.10.14 |
[Tomcat] Root 페이지 변경하기 (0) | 2020.07.15 |
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- jQuery
- shell
- Linux
- Docker
- Java
- JEST
- AWS
- Git
- spring boot
- kotlin
- mysql
- react
- Database
- pgloader
- eureka
- terraform
- etc
- Vault
- 코딩테스트
- Spring Cloud Config
- javascript
- Gradle
- hashicorp
- Node.js
- IntelliJ
- dev
- AWS IoT
- Puppeteer
- postgresql
- JPA
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함