기록방

GIT - GIT1 입구수업[생활코딩] 본문

CS/Git

GIT - GIT1 입구수업[생활코딩]

Soom_1n 2021. 5. 20. 18:31

GIT1 - 1. 수업소개

[ GIT이란? ]

버전관리시스템. 소스코드 외에도 문서관리에 사용해도 좋음.

리눅스 개발자들이 리눅스를 보다 잘 관리하기위해 만든게 시초.

 

[ 지옥에서 온 GIT ]

버전관리시스템 없이 많은 파일들이 오고가면 지옥과 같아서...


 GIT1 - 2. GIT을 구경합시다!

[ GIT의 3대 목적 ]

1. 버전관리 : version

2. 백업 : backup

3. 협업 : collaborate

 

뒤로 갈수록 기하급수적으로 어려워짐.

하나하나 잘 익히고 넘어가야되고 필요한 기능만 쓰도록 하자.

 

[ 이 수업 ]

사용하는 방법이아니라 GIT을 구경하고 체험하는 목적임.


 GIT1 - 3.1 GIT의 목적 1 - 버전관리 1

[ 버전관리 ]

일반적으로 작업을 하다가 전 작업으로 돌려야 될 것 같으면 파일(2) 같이 이름을 구분해서 저장해놓음.

일반적인 복잡도는 이정도로 충분.

하지만 큰 프로그램을 다룰 때는 지옥이 됨.

그래서 GIT이 필요하다.

 GIT1 - 3.1 GIT의 목적 1 - 버전관리 2

[ GIT 프로그램으로 버전관리 ]

GIT 응용프로그램을 사용하면 매 작업마다 수정사항을 저장할 수 있음. (버전생성)

각 버전 사이의 차이점을 손쉽게 볼 수 있음. (이미지도 가능)

언제든 전 버전으로 돌아갈 수 있음.

버전에는 파일 하나가 아니라 여러 파일들의 상태를 동시에 관리함.

 

아주편리하다!


 GIT1 - 4. GIT의 목적 2 - 백업

[ 백업 ]

불확실 : 컴퓨터는 언제 고장날지 알 수 없다.

확실 : 컴퓨터는 언젠가 고장난다.

 

이러한 불확실성과 데이터 유실 위험을 피하기위해 다른 컴퓨터에 저장하는 백업이 필요하다.

옆 컴퓨터에 놓아도 좋지만 세계 반대편 컴퓨터에 놓으면 지구적인 재해가 오지 않는 이상 데이터는 안전하다.

 

내컴퓨터는 지역저장소 (local repository)

다른 컴퓨터는 원격저장소 (remote repository)

 

[ github.com ]

이러한 저장공간을 제공하는 많은 사이트가 있는데 그중 대표적인게 깃허브.

 

[ 사용 ]

- PUSH : 지역 -> 원격 저장소로 데이터를 밀어넣음. 

- PULL : 지역 <- 원격 저장소로 데이터를 당겨옴.

 

작업이 종료되면 my1에서 hub로 PUSH하고 퇴근.

다른 장소에서 작업시 hub에서 my2로 PULL하고 작업.

다시 my2에서 hub로 PUSH하고 퇴근.

 

이렇게 백업은 여러 장소에서 동시에 관리하는 기능을 제공.

협업의 기초가 됨.


 GIT1 - 5. GIT의 목적 3 - 협업

[ 협업 ]

백업 기능이 있으면 협업은 다 된거나 마찬가지임.

my1 - hub - my2 관계에서

my1 - hub - other 로 바뀐 것 뿐임.

 

[ github.com ]

같은 파일, 같은 행을 동시에 수정했다면 문제가 될 수 있는데,

깃허브에서 이 문제들간 교통경찰역할을 훌륭히 수행함.


 GIT1 - 6. GIT의 종류

[ 종류 ]

지금까지 예시로 나온 것은 github.com에서 제공하는 github desktop이라는 프로그램이었음.

이 외에도 다양한 프로그램이 있음.

 

- github desktop : 기능이 매우 심플함. 배우기는 쉬운데 고급 사용자가 되면 답답할 수 있음.

- TortoiseGIT : 윈도우 탐색기에 기생하여 사용됨.

- Sourcetree : 복잡하지만 매우 강력하다. 전문가용 프로그램.

- GIT : 구글에 git을 검색하여 처음 나오는 프로그램이 오리지널 프로그램임. 도스창에서 명령어로 사용. 수업에서 사용.


 GIT1 - 7. 수업을 마치며

[ 시작 ]

위 수업은 본격적인 수업을 시작하기 전에 전체적인 설명과 체험을 위한 것임.

버전관리시스템이 필요없는 것 같다면 여기서 멈추기.

필요한 사람들은 열심히 해보자.

수업은 위 수업을 기준으로

협업 <- 백업 <- 협업 순으로 강의를 진행할 예정

 

명령어 말고도 소스트리나 토토이즈깃을 사용하는 수업도 만들어갈 예정.

 

프로그래머라면 GIT의 오리지널 모습인 명령어(Cli)버전을 듣기를 추천.

 

728x90