git을 사용하려면 git에 대한 개념을 알아야 겠죠.
(관리자 입장이 아니면 사실 pull/ commit /push만 알면 될듯 하네요)
물론, 제가 배운 내용의 출처는 " https://git-scm.com/book/ko/v1 "이며, 해당 책에는 Git에 관한 모든 내용이 완전 잘정리 되어있습니다.
하지만 저는 급하게 프로젝트 만들거나 혼자서 놀다가 갑자기 생각안날때를 대비해서 정리하도록 하겠습니다.
정리하려는 내용은 개념 기반입니다. 제가 Git을 관리할때 리눅스 서버에서 관리를 했기때문에 'Git Bash'를 이용하여 예제를 만들 것 입니다.
결론적으로 Git 관리 tool선택은 개념이 똑같기 때문에 무엇을 선택하든 상관이없습니다.
(개발환경 내 Git 관리(ex. Spring git 연동관리/ Working tree/ GitHub Desktop... 등) tool을 이용해서 관리해도 되지만, 전 터미널에서 관리하는게 편합니다. 취존부탁ㅎ)
목차
1. git --help
2. git init
2-1. git 저장소(repository) 만들기
2-2. bare 저장소(bare repository) 만들기
3. git clone
3-1. git clone 사용
4. repository 생성 요약정리
1. git --help
Q. git을 사용할때 명령어가 생각이 안난다면?
A. git --help 치면 아래 사진처럼 다 나옵니다.
그래서 1장에 정리할 내용은? start a working area부분
clone과 init 입니다.
2. git init
'git init' 은 .git 이라는 하위 폴더를 생성하여 해당 폴더를 git으로 관리할 수 있게 해주는 명령어 입니다.
.git 폴더 내에는 프로젝트 관리를 위해 필요한 내용을 담는 내용물로 구성되어 있습니다.
git으로 프로젝트를 관리하려면 git으로 관리할 프로젝트에 'git init' 명령어를 통해 초기화 하여 관리할 수 있게 됩니다.
위 사진에서 보듯이 'git init' 명령어를 사용하게 되면 .git 이라는 폴더가 생성 됩니다.
.git 폴더 내에는 git 관리에 필요한 파일들이 있습니다.
git init 명령어를 통해 .git이 생성 되면 해당 프로젝트는 git으로 관리할 수 있게 되는 것이죠!
2.1 git 저장소(repository) 만들기
그런데, 새로 만들 폴더를 저장소(repository)로 만드려면, repo를 가르키는 master가 필요하고, 이것은 최초 1회 commit을 통해 생성할 수 있습니다.
그렇기 때문에 아래 사진처럼 ReadMe.txt 파일을 add하고 commit을 함으로써 저장소가 생성이 된 것입니다!
git의 사용 목적은 다수의 사용자들과 함께 프로젝트를 진행하기 위함입니다.
프로젝트 용량이 커지게 되면, 전체 프로젝트를 왔다갔다 저장소로 옮기기 힘들어 집니다.
그렇기 때문에 원격 저장소는 실제 작업 파일을 가지고 있는 일반 저장소(repository) 보다는
프로젝트의 정보와 변경 사항만 적용이되는 bare repository가 원격 저장소로 적합합니다.
2.2 bare 저장소(bare repository) 만들기
bare repositroy를 만드는 법은 간단합니다. 아래와 같은 명령어로 만들 수 있습니다.
$ git clone --bare {프로젝트 이름} {프로젝트이름.git} //(사진 4. 참고)
.git 이름표를 붙이는 이유는 bare repo라는것을 알기 위함입니다.
이렇게 생성된 bare repository는 기존 저장소와 내용물이 다릅니다.
내용물 대신 프로젝트의 정보를 담고있는 파일들로 저장이 되어 있습니다.
그렇기 때문에 프로젝트의 실제 작업물을 담고있는 no bare 저장소에 비해 변경 사항만 저장되는 bare저장소는 가볍기 때문에 원격저장소로 두기 적절합니다.
그러면, bare repo에서 변경된 내용은 어떻게 저장되는가? 하면 위 사진의 object 폴더 내에 저장이 됩니다. (물론 사람이 알아볼수있게는 안써있음)
3. git clone
git clone이란 저장소(Repository)로 부터 프로젝트를 복제하는 것을 말합니다.
이 개념을 이해 하려면 아래 사진을 보면 됩니다.
간단하게 보면 각 컴퓨터들은 저장소로 수정한 내용을 push하고, pull 받으며 버전을 동일하게 유지합니다. 이러한 과정 덕분에 모든 컴퓨터들은 협업이 가능해지게 되는 것 입니다.
3.1 git clone 사용법
Q. 그럼 git clone은 언제 사용할까요?
A. git clone을 사용하는 것은 일반적으로 2가지 입니다.
1) bare repository를 생성할 때 (최초 생성할때 사용)
2) 저장소에 있는 Project를 내 PC에 설치할때 (자주 사용)
실질적으로 clone은 2번 경우에 자주 사용됩니다.
진행중인 프로젝트에 투입하게 되는 경우, 저장소에 있는 프로젝트를 내 컴퓨터에 설치해야 하는 경우가 많기 때문입니다.
- 사용법은 ?
git clone 사용법은 간단합니다. 아래와 같은 형태로 사용합니다.
git clone {프로토콜} {프로젝트 주소}.git
구체적으로 Git에서는 Local, HTTP, SSH, Git 이렇게 4가지 프로토콜을 지원합니다. 따라서 이 프로토콜에 맞게 명령어를 입력하면 clone 할 수 있습니다.
ssh 예제) $git clone ssh://{서버 계정}@{서버 주소}:/{저장소 위치/받을 프로젝트 이름}.git
http 예제) $git clone https://{url/받을 프로젝트 이름}.git
git 지원 프로토콜에 대해 자세히 할고싶다면 여기 클릭
그럼 방금 만든 bare repository에서 git clone을 해보겠습니다.
$git clone project_origin.git/ project
-> Local에서 clone 하기때문에 따로 프로토콜을 이용할 필요는 없습니다.
remote인 project_origin.git의 내용을 project 라는 이름으로 clone 하고자 합니다.
잘 되는군요.
project 폴더 내용과 remote 주소를 볼까요?
정상적으로 clone 된것을 확인할 수 있습니다.
4. repository 생성 요약정리
결과적으로 오늘 정리한 내용은 아래 그림 하나로 정리가 가능합니다.
repository 생성 방법만 보려면 이것만 보면 되겠네요.
오늘은 여기까지!
'IT > Git' 카테고리의 다른 글
reset, revert, stash (0) | 2020.05.03 |
---|---|
Git submodule? (0) | 2020.03.07 |
Git - tag 긋기 (0) | 2019.06.21 |
Git 개념 (2) - pull / commit / push (0) | 2019.05.22 |
기존에 있던 프로젝트 Git으로 관리하기 (0) | 2019.05.20 |