728x90
반응형
Git이란?
분산형 버전 관리 시스템. 소스코드가 변경된 이력을 쉽게 확인할 수 있고, 특정 시점에 저장된 버전과 비교하거나 특정 시점으로 되돌아갈 수 있음.
Git 또는 Github에서 사용하는 기본 용어들
- Git repository (저장소)
: 파일이나 폴더를 저장해 두는 곳.
- Romote Repository(원격 저장소): 여러 사람이 함께 공유하기 위한 원격 전용 저장소.
- Local Repository(로컬 저장소): 내 PC에 파일이 저장되는 개인 전용 저장소.
- 로컬 저장소 만드는 법
- 저장소 새로 만들기
- 원격 저장소 자료를 로컬 저장소로 복사하기
- Commit(커밋)
: 파일 및 폴더의 추가/변경 사항을 저장소에 기록
이전 커밋 상태 ~ 현재 상태까지의 변경 이력이 기록된 커밋이 만들어짐.
- Work tree(작업트리) : 폴더
- Index(인덱스) : 커밋을 실행하기 전의 저장소와 작업트리 사이에 존재하는 공간
인덱스 까지 기록(staging)하고 저장소에 커밋(commit).
기록하려는 모든 변경 사항들은 '인덱스'에 존재해야함.
- Push(푸시)
: 로컬 저장소의 변경된 이력을 원격 저장소에 공유할 때, 로컬->원격 업로드 해야함.
결과 - 원격 저장소와 로컬 저장소가 동일한 상태가 됨.
- Pull(풀)
: 원격->로컬 저장소로 가져오기
- Clone(복제)
: 원격 저장소 복제하기. 누군가의 변경 이력이 적용된 원격 저장소가 있을 때, 통째로 복제해와 내 PC에서 작업가능.
- merge(병합)
: 변경이력 병합하기. 내가 Pull한 저장소가 최신 버전이 아닌 경우(다른사람이 Push로 업데이트한 경우) 내 Push요청이 거부된다. 이런 경우 merge하여 다른 사람의 업데이트 이력을 내 저장소에도 갱신함.
만약 병합하지 않은채로 이력을 덮어쓰면 다른사람이 Push한 내역이 사라져버림.
- 충돌 수동으로 해결
: 경우에 따라 자동으로 merge할 수 없는 경우(원격과 로컬 양쪽에서 동일한 부분을 변경한 경우)엔 어느쪽으로 저장할지 자동으로 판단 할 수 없기 때문에 충돌이 일어난다.
==== 위로 로컬저장소, 아래는 원격 저장소의 변경 내용.
충돌 부분을 수정하고 다시 commit하기
728x90
반응형
'IT > Git' 카테고리의 다른 글
Git 상황별 코드 정리 (0) | 2023.10.26 |
---|---|
git 기본 코드 (0) | 2021.03.20 |
Git 관련 Youtube 영상 및 자료 (0) | 2021.03.19 |