Git에 대하여, 관련 내용 정리
Git
소스코드를 효과적으로 관리하기 위해 만들어진 분산형 버전관리 시스템
Git의 장점
- 소스코드가 변경된 이력을 쉽게 확인할 수 있음
- 특정 지점에 저장된 버전과 비교하거나 특정 시점으로 돌아갈 수(복원할 수) 있음
-> Git을 사용하게 되면 모든 파일에 대한 업데이트 이력이 git에 저장되기 때문에 사용자가 일일이 복사해서 백업본 파일을 만들 필요가 없이 매우 편리하다는 장점이 있음
저장소(Git Repository)
파일이나 폴더를 저장해두는 곳 -> 파일이 변경 이력별로 구분되어서 저장됨
git은 로컬 저장소, 원격 저장소로 2가지 성격의 저장소를 지원한다.
저장소 종류 | 내용 |
로컬 저장소 (Local Repository) |
자신의 PC 내에 파일이 저장되는 개인전용 저장소 |
원격 저장소 (Remote Repository) |
파일이 원격저장소 전용서버에서 관리, 여러사람들과 공유하기 위한 저장소 |
-> 평소에는 자신의 PC의 로컬저장소에서 작업을 진행하다가 작업내용을 공개하거나 공유하고 싶은 경우 이를 원격저장소에 업로드할 수 있으며 또한 다른 사람이 작업하여 원격저장소에 업로드한 파일을 자신의 로컬저장소로 가져오는 것도 가능함
커밋 (Commit)
1. 파일 및 폴더의 변경사항을 기록하기 위해서는 바로 이 커밋(Commit)을 진행해야 한다. | ||
2. 커밋(Commit)을 진행하면 이전 커밋상태부터 현재상태까지의 변경이력이 기록된 커밋이 만들어진다. 이는 시간 순으로 저장되며 이를 통해서 과거의 변경이력과 그 내용들을 알 수 있게된다. | ||
3. 각 커밋에서는 영문+숫자로 이루어진 40자리의 고유이름이 붙게되는 데 저장소에서는 이 이름을 통해서 각 커밋을 구분하고 선택한다. | ||
4. 커밋은 이력을 남기는 중요한 작업이므로 커밋을 진행할 때에는 커밋메시지를 필수로 입력해야 한다. 이 메시지가 없으면 커밋이 실행되지 않는다. | ||
5. 커밋메시지도 주석처럼 간단하고 명료하게 적어주는 것이 중요하다. git에서 궍장하는 메시지 형식은 다음과 같다. 1 : 커밋내의 변경내용을 요약 2 : 빈칸 3 : 변경한 이유 |
작업트리(Work tree)와 인덱스(Index)
작업트리 (Work Tree) | 흔히 말하는 작업폴더 |
인덱스 (Index) | 커밋을 실행하기 전의 저장소와 작업 트리사이에 존재하는 가상의 공간 (인덱스에 등록되지 않은 파일은 커밋을 수행할 수 없다.) |
Git에서의 커밋 | 작업트리에 존재하는 변경내용을 저장소에 바로 기록하는 것이 아닌 그 사이 공간인 인덱스(Index)에 해당 내용을 기록(stage - 스테이징 한다고 표현하기도 함) -> 저장소의 변경사항을 기록하기 위해서는 기록하고자 하는 모든 변경사항들이 인덱스에 존재해야 한다. |
인덱스(index) 공간이 별도로 존재하는 이유 | 작업트리 내에 있는 커밋이 필요없는 파일들을 커밋에 포함시키지 않을 수 있고 파일에서 원하는 일부 변경사항만 인덱스에 등록하여서 커밋할 수 있다. |
원격 저장소에 Push 하기
내 PC에서 저장된 이력을 원격저장소에 공유하려면, 로컬저장소의 변경이력을 원격저장소에 업로드 해야한다.
push
웹 상의 원격저장소에 변경된 파일을 업로드 하는 것
-> push를 실행하면 원격저장소에 변경이력이 업로드 되어서 원격저장소와 로컬저장소가 동일한 상태가 되게 된다.
원격 저장소 복제하기
누군가의 변경이력이 저장된 저장소가 있으면 그걸 웹에서 통째로 가져와서 내 PC에서 직접 작업할 수 있다. clone이란, 원격저장소의 내용을 통째로 다운로드 하는 것으로서 복제한 저장소를 다른 PC에서 로컬저장소로 사용할 수 있게 된다.
clone
원격 저장소를 복제
-> 변경이력도 로컬저장소에 같이 복제되어서 넘어오기 때문에 원래 원격저장소와 동일하게 이력을 참조하고 커밋을 진행할 수 있다.
원격 저장소에서 가져오기(Pull)
원격저장소를 공유해서 여러사람이 함께 작업을 수행하게 되면 모두가 같은 원격저장소에 push를 진행하게 된다. 그렇게 되면 나중에 다른 사람이 원격저장소에 push한 내용을 내 로컬저장소에도 적용(Pull)할 필요성이 있다.
pull
원격 저장소에서 최신 변경이력을 다운로드하여 내 로컬 저장소에 적용
-> 원격저장소에서 로컬저장소로 업데이트 하려면 pull을 시행해야 한다.
'Tools > Git, Github' 카테고리의 다른 글
git commit - 변경사항 commit 하기 (0) | 2021.01.11 |
---|---|
git diff - 변경 내용 살펴보기 (0) | 2021.01.10 |
git log - commit 기록 조회하기 (0) | 2021.01.09 |
git status, add, reset, commit (0) | 2021.01.08 |
Git 관련 명령어 - git init / git clone (0) | 2021.01.07 |
댓글
이 글 공유하기
다른 글
-
git diff - 변경 내용 살펴보기
git diff - 변경 내용 살펴보기
2021.01.10 -
git log - commit 기록 조회하기
git log - commit 기록 조회하기
2021.01.09 -
git status, add, reset, commit
git status, add, reset, commit
2021.01.08 -
Git 관련 명령어 - git init / git clone
Git 관련 명령어 - git init / git clone
2021.01.07