본문 바로가기
#02.천재교육 빅데이터/+04.DevOps기초

[천재교육] 깃 & 깃허브

by 돌비오 2023. 2. 28.
728x90
GIT

 깃(Git)은 리누스 토르발스가 개발한 분산형 버전 관리 시스템(VCS)이다. 즉, 컴퓨터 파일의 변경사항을 추적하고 여러 명의 사용자들 간에 해당 파일들의 작업을 조율하기 위한 스냅샷 스트림 기반의 분산 버전 관리 시스템이다. 또는 이러한 명령어를 가리킨다. 소프트웨어 개발에서 소스 코드 관리에 주로 사용되지만 어떠한 파일 집합의 변경사항을 지속적으로 추적하기 위해 사용될 수 있다. 기하학적 불변 이론을 바탕으로 설계됐고, 분산 버전 관리 시스템으로서 빠른 수행 속도에 중점을 두고 있는 것이 특징이며 데이터 무결성, 분산, 비선형 워크플로를 지원한다.

 깃은 2005년에 리눅스 커널 개발을 위해 초기 개발에 기여한 다른 커널 개발자들과 함께 2005년에 리누스 토르발스가 처음 개발한 것이다. 2005년부터 지금까지 주니오 하마노(Junio Hamano)가 소프트웨어의 유지보수를 맡고 있다. 다른 대부분의 분산 버전 관리 시스템처럼, 또 대부분의 클라이언트-서버 시스템과 달리, 모든 노드의 모든 깃 디렉터리는 네트워크 접속이나 중앙 서버와는 독립적으로 동작하는 완전한 이력 및 완전한 버전 추적 등, 모든 기능을 갖춘 저장소이다.

 

 Git는 다음과 같은 체제를 갖고 있다.

일단 Git은 '로컬 저장소' 라는 이름으로 전체 데이터를 작업 폴더에 넣어 관리한다. 이는 전체 기록과 각 기록을 추적할 수 있는 정보를 포함하고 있는 저장소이다. 즉 자기 컴퓨터에 모든 파일을 다 받아서 하는 셈. 위키로 치자면 위키 전체를 작업자의 컴퓨터에 전부 다 받아서 수정하는 것과 같다. 이 '로컬 저장소' 는 해당 작업자의 작업을 버전별로 저장하고 관리하는 중간 관리 역할도 하면서, 동시에 해당 작업자와 다른 작업자의 작업을 '각기 다른 사람의 로컬 저장소'로 다원화 하는 역할도 가지고 있다. 즉, 여러 유저가 메인 서버의 편집 버전 숫자 증가를 공유하는 것이 아니라, 각 유저별로 나름 자기 버전의 편집버전을 올려가다가, 필요해지면 서버와 각 유저가 작업을 마친 원하는 버전을 통합시켜 서버 단위의 편집버전을 +1 올리는 것이다.

작업이 끝나면 Git 원격 저장소로 다시 발행하는데, 여기에서도 메인 저장소와 합치기 전 메인 저장소와 격리시키고 따로 개발 할 수 있는 가지라는걸 만들어 가지의 개발이 완료될 시 메인 저장소와 합치고 가지는 삭제시키는 가지치기를 할 수 있으며, 또한 개발 중간중간 꼬리표를 매겨 개발을 더 수월하게 할 수 있다.

 

 

 

간단한 GIT 사용 연습사이트

http://rogerdudler.github.io/git-guide/index.ko.html

 

git - 간편 안내서 - 어렵지 않아요!

 

rogerdudler.github.io

 

https://backlog.com/git-tutorial/kr/

 

누구나 쉽게 이해할 수 있는 Git 입문~버전 관리를 완벽하게 이용해보자~ | Backlog

누구나 쉽게 알 수 있는 Git에 입문하신 것을 환영합니다. Git을 사용해 버전 관리를 할 수 있도록 함께 공부해봅시다!

backlog.com

 

 

 

자주 사용하는 기초 명령어

1. 로컬 저장소 생성

적당한 폴더를 생성한 후 git init

2. 로컬 저장소와 원격 저장소 연결

git remote add 원격저장소별칭 원격저장소URL

3. 원격 저장소 복제

git clone 원격저장소URL

4. 소스 수정 및 추가를 한 뒤 Stage에 올리기

git add 폴더 혹은 git add 파일명

5. Stage에 올라간 파일을 로컬 저장소에 저장하기

git commit -m "커밋메시지"

6. 로컬에 커밋 이력 원격 저장소에 갱신하기

git push

git push 원격저장소별칭 로컬브랜치명

7. 원격 저장소 내용 로컬 저장소에 갱신하기

git pull 원격저장소별칭 브랜치명

8. 브랜치 이동

git checkout 브랜치명

9. 브랜치내용 병합

git merge 합칠브랜치명

▶ 로컬 저장소 관련(파일)

git init

로컬 저장소 생성하기

git add 파일명

Untracked 상태(새로 추가된 파일)를 Tracked 상태(버전 관리 대상)로 변경

Modified 상태(수정된 파일)을 Tracked 상태(버전 관리)로 변경

git add .

현재 경로에 하위 모든 파일을 Stage 영역에 추가

git add --all

변경된 파일 모두 Stage 영역에 추가

git commit -m "커밋 메시지"

Stage 영역에 파일들을 로컬 저장소에 변경 사항 저장

git push 원격저장소명 로컬브랜치명

로컬 저장소에 커밋된 내용을 원격 저장소에 갱신

git status

Untracked, Tracked, Modified 등 상태 파일들을 확인

파일들의 스테이지 상태를 확인

git diff / git diff 파일명

수정 내용 확인

git checkout 파일명

수정 내용 되돌리기

git reset / git reset 파일명

Stage에 올라간 파일을 다시 Untracked 혹은 Modified 상태로 되돌리기

▶ 로그 관련

git log

로그 기록 목록 확인

▶ 원격 저장소 관련

git remote -v

연결된 저장소 목록 확인

git remote add 원격저장소별칭 원격저장소URL

로컬 저장소와 원격 저장소 연결

git remote rm 원격저장소별칭

로컬 저장소와 원격 저장소 연결 해제

git clone 원격저장소URL

저장소 복제

git pull 원격저장소명 브랜치명

원격 저장소에 내용을 로컬 저장소에 갱신

git push --delete 원격저장소별칭 원격브랜치명

원격 저장소의 브랜치 삭제

▶ 브랜치 관련

git branch

로컬 branch 목록 확인 및 현재 브랜치 확인

git branch -v

로컬 branch의 정보를 마지막 커밋 내역과 함께 확인

git branch -r

원격 저장소의 branch 목록 확인

git branch -a

로컬/원격 저장소의 모든 branch 정보 확인

git branch 브랜치명

로컬에 새로운 branch 생성

git branch -d 브랜치명

branch 삭제

git branch -m 기존브랜치명 새로운브랜치명

브랜치 이름 변경

git checkout 브랜치명

다른 브랜치로 이동

git merge 합칠브랜치명

현재브랜치에 내용을 합칠브랜치의 내용으로 병합 [현재브랜치가 바뀜]

 

 

 

깃허브

 대표적인 무료 Git 저장소. 2008년 공개했다. Git 호스팅 기능 덕분에 GitHub는 자유 소프트웨어와 오픈소스의 성지로 떠올랐다. 본사는 미국 샌프란시스코에 있다. 마스코트는 고양이와 문어를 합친 모습의 Octocat이다. 새 모양 실루엣의 트위터 로고가 마음에 든 깃허브 관리자가 그 디자이너에게 제작을 의뢰했다고 한다.

 

 깃허브(GitHub)는 루비 온 레일스로 작성된 분산 버전 관리 툴인 깃 저장소 호스팅을 지원하는 웹 서비스이다. 깃허브는 영리적인 서비스와 오픈소스를 위한 무상 서비스를 모두 제공한다. 2009년의 깃 사용자 조사에 따르면 깃허브는 가장 인기있는 깃 저장소 호스팅 서비스이다. 또한 2011년의 조사에서도 가장 인기있는 오픈 소스 소프트웨어 인터넷 호스팅 서비스로 꼽혔다.

 깃이 텍스트 명령어 입력 방식인데 반해, 깃허브는 그래픽 유저 인터페이스(GUI)를 제공한다. 깃허브는 페이스트빈(pastebin)과 유사한 서비스인 기스트(Gist)와 위키를 각 저장소마다 운영하고 있으며, 깃 저장소를 통해 고칠 수 있다.

 깃허브 회사는 2008년 톰 프레스턴워너(Tom Preston-Werner), 크리스 완스트래스(Chris Wanstrath), 피제이 하이엣(PJ Hyett)이 공동 설립했다. (Andreessen Horowitz) 등에서 투자를 받았다. 2010년 1월부터 깃허브는 GitHub, Inc. 라는 이름으로 운영되고 있다.[4] 깃허브의 마스코트는 고양이 머리에 문어 다리가 달린 옥토캣(Octocat)이다. 본사는 미국 캘리포니아주 샌프란시스코에 있다.

728x90

'#02.천재교육 빅데이터 > +04.DevOps기초' 카테고리의 다른 글

[천재교육] AWS  (1) 2023.03.02