본문 바로가기

카테고리 없음

[Git & Github] 이론정리

1. 버전과 버전 관리

깃이 없으면?

1. 변경 내역 확인이 어렵다.

2. 작업을 되돌리기 어렵다.

3. 협력하기 어렵다.

 

git이란? 버전 관리를 위한 도구

 

버전? 프로그램 개발 == 버전(유의미한 변화를 쌓아) 프로그램을 만들어 나가는 것

 

2.  깃/깃허브/소스트리란?

깃이란? 버전 관리를 위한 도구

 

소스트리란?  그런 깃을 좀 더 편하게 쓰게 해주는 도구

 

깃허브란? 원격 저장소 호스팅 서비스(개발자들의 sns)

 

3. 깃으로 버전 관리 시작하기

깃이 관리하는 세 개의 공간

1. 작업 디렉터리 - .git이 있는 디렉토리,

 스테이지로 add

2. 스테이지(가상공간) - 버전으로 만들고 싶은 변경사항

 저장소로 commit

3. 저장소(가상공간) - 버전1

 

4.  버전을 되돌리는 방법

만들어진 버전을 되돌리는 두 가지 방법

 

1. 버전을 되돌린 새로운 버전 만들기 : revert

 

2. 버전을 완전히 되돌리기 : reset

soft reset: commit한 사실만 되돌리기

mixed reset : 스테이지로 add한 과정 되돌리기

hrad reset : 작업 디렉토리에서 작업한 사실을 되돌리기

 

5. 브랜치란: 브랜치를 나누어 관리하는 이유

브랜치는 버전을 여러 개의 흐름으로 관리하는 방법

 

브랜치로 <버전의 분기>를 관리 하는 방법

1. 브랜치를 나눈다

2. 각자의 브랜치에서 작업한다.

3. (필요하다면) 나눈 브랜치를 합친다.

 

브랜치를 사용하는 이유? 

1. 서로의 작업과 전혀 관련 없는 부분, 같은 코드를 다르게 수정한 부분 혼재

2. 일일이 수작업으로 합쳐야 함

3. 때로는 서로의 코드를 합치다 실수가 생길수도 있음

 

 

6. 브랜치 나누기

브랜치의 이름: 최초의(기본적인) 브랜치, master 브랜치

 

특정 브랜치에서 작업하기: HEAD와 체크아웃

* HEAD

1. 현재 작업 중인 브랜치으 커밋을 카리킨다.

2. 일반적으로 현재 작업 중인 브랜치의 최신 커밋을 가리킨다.

3. 어디서 작업하고 있는지 

 

* checkout

1. 특정 브랜치에서 작업할 수 있도록 작업 환경을 바꾸는 것

2. HEAD의 위치를 특정 브랜치의 최신 커밋으로 옮김

 

7. 브랜치 합치기

브랜치를 합친다 = 병합(merge)한다

 

master 브랜치는 마치 빨리감기 하듯 브랜치 내용이 업데이트되는 병합 기법은 빨리감기 병합이라고 한다.

 

bar, master 합쳐진 커밋은 새로운 커밋이 생성됨

 

8. 깃 명령어를 알아야 하는 이유

소스트리는 일종의 보조 도구일 뿐

 

소스트리와 깃 명령어를 같이 써야 버전관리가 용이함.