반응형
GIT
리누스 토르발스가 개발한 분산형 버전 관리 시스템(VCS) 으로 협업 도구 입니다.
Git은 매우 빠른 속도와 분산형 저장소 지원이 특징이다. 방대한 Linux 커널 소스 코드를 생각해 보면, 속도 문제는 매우 중요하다. 오픈 소스 개발의 특성상 여럿이 달려들어 자기 맘에 드는 걸 하기도 하며, 또한 뭘 하나 잘못 붙였다 이상한 걸 건드려 망하기 쉬운데, Git는 이런 환경의 특성에 맞게끔 잘 만들어져 있다.
✍️ 버전 관리란?
버전 관리 시스템은 파일 변화를 시간에 따라 기록했다가 나중에 특정 시점의 버전을 다시 꺼내올수 있는 시스템이다.
- 각 파일을 이전 상태로 되돌릴 수 있다.
- 프로젝트를 통째로 이전 상태로 되돌릴 수 있으며 시간에 따라 수정 내용을 비교해 볼 수 있다.
- 누군가 문제를 일으켰는지도 추적할 수 있다.
- 누가 언제 만들어낸 이슈인지도 알 수 있다.
- 파일을 잃어버리거나 잘못 고쳤을 때도 쉽게 복구할 수 있다. 이런 모든 장점을 큰 노력 없이 이용할 수 있다.
✍️ git의 장점
✔️ 소스 코드를 주고 받을 필요 없이 같은 파일을 여러 명이 동시에 작업하는 병렬 개발이 가능
✔️ 분산 버전 관리 이기 때문에 인터넷이 연결되지 않은 곳에서도 개발을 진행할 수 있고, 중앙 저장소가 손실되어도 원상복구 가능
✔️ 팀 프로젝트가 아닌 개인프로젝트 일지라도 Git을 통해 버전 관리를 하면 체계적인 개발이 가능하고,
프로그램 패치를 배포하는 과정도 간단
✍️ git의 구조
✍️ git 기본 용어
용어 | 설명 |
Repository (저장소) |
- 파일이나 디렉토리를 저장하는 장소 |
Remote Repository (원격 저장소) |
- 파일이 원격 저장소 전용 서버에서 관리됨 - 여러 사람이 함께 공유 가능 |
Local Repository (로컬 저장소) |
- 개인 로컬 PC에서 소스파일을 작업하는 저장소 |
Staging Area (스테이징 영역) |
- 저장소에 커밋하기 전 커밋을 준비하는 영역 - 수정 파일 중 일부만 버전으로 만드려면 일부만 스테이징 영역으로 넘겨주면 됨 |
Head | - 현재 작업중인 Branch를 가리킴 |
git clone | - 원격 저장소(Remote Repository)의 내용을 통째로 다운로드 |
git add | - 작업 디렉토리(working directory)의 변경 내용을 스테이징 영역(staging area)에 추가 - 다음 변경(commit)을 기록할 때까지 변경분을 모아놓기 위해서 사용 |
git status | - git add 명령어를 사용할 때, 항상 함께 사용되는 명령어 - 작업 디렉토리와 스테이징 영역의 상태를 확인하기 위해 사용 |
git commit | - 현재 변경된 작업 상태를 점검을 마치면 확정하고 저장소에 저장하는 작업 - 파일의 추가/변경 사항들을 저장 |
git push | - commit한 내용을 원격 저장소에 저장 (로컬 저장소에서 변경된 내용을 원격 저장소로 업로드) |
git merge | - 다른 Branch의 내용을 현재 Branch로 가져와 병합 - 다른 두 Branch가 같은 파일의 같은부분을 수정하면 충돌(Conflict) 발생 |
git checkout | - 이전 버전의 작업을 불러옴 |
반응형
'IT > git' 카테고리의 다른 글
git 기본 명령어 모음 - 주로쓰는 git 명령어 (0) | 2023.08.12 |
---|---|
[mac] HomeBrew / git 설치하기 (0) | 2023.08.11 |