본문 바로가기
AI + 대학원

깃(Git)과 깃허브(github)란? 깃 구조부터 기본 용어 알기 # add commit push clone 커밋룰

by 팡귄 2022. 1. 28.

github 깃허브 구조알기

목차

1. 깃허브가 뭔가요?

- Git(깃) 과 Github (깃허브)?

2. 구조를 살펴봅시다.

- 깃허브의 오픈 소스 프로젝트에 참여한다는 시나리오라면.
- 깃 용어부터 익숙해지자. Clone으로 복제해 저장하고 수정해서 Add > Commit > Push 로 다시 깃허브에 올리자.

3. 읽어보면 도움이 될 추천 블로그


prologue

새해에는 이제는 해봐야지 하는 것 중 하나가 저만의 웹 포트폴리오 만들기였는데요. 블로그나 까페를 만들어보면서 느끼는 것이 매우 편리하면서도 어딘가 내맘대로 할 수 없는 레이아웃들이나 갑자기 서비스가 중단된다면 내 글은 어떡하나 등등의 일어나지도 않은 걱정들이 항상 마음 한 켠에 맴돌았었습니다. 무엇보다 정말 마음껏 꾸밀 수 있는 공간이 있다면 하는 바람도 있었구요. 오늘 드디어 도전을 해보았는데, 생각보다 너무나 쉽게 이루어졌습니다! 우선 github를 통해 만들 것이라 오늘은 깃, 깃허브? 이들을 살짝 알아보겠습니다.

1. 깃허브가 뭔가요?

Github를 들어보신 분들도, 낯선 분들도 있으실 것입니다.
Git(깃)은 컴퓨터의 여러 변경사항을 추적하는 PC상의 로컬 버전 관리 시스템입니다. (혹은 이를 위한 명령어를 지칭합니다.) 프로그램 개발 과정에서의 수많은 변경사항을 추적하고 버전을 관리하여 프로젝트를 유지보수하기 위해 개발되었습니다.
Github(깃허브)온라인상의 원격 버전 관리 시스템입니다. Git(깃)으로 오프라인 상에서 내 PC에 나 혼자서 혹은 접근 가능한 사람들과 작업하는 정도였다면, 깃허브를 통해서는 수많은 사람들에게 피드백을 받을 수도 있고 나 역시 여러 오픈소스 프로젝트에 참여할 수도 있습니다. 다른 사람이 공유한 오픈 소스를 이용해 내가 새로운 것을 만들어 볼 수도 있겠죠.
많은 사람들과 협업을 하면서 여러 버전을 관리하려면 깃보다는 온라인 상의 Github가 유용할 것입니다. 그럼 git과 github의 관계 그리고 그 구조를 좀 더 알아보겠습니다!

2. 구조를 살펴봅시다.

굉장히 많은 다른 분들의 포스팅과 영상, 튜토리얼을 공부해보았는데, 좋은 포스팅이 정말 넘치게 많더라구요. 그 결과 매우 고심하여 제 포스팅은 무지 간단하게 올리기로 했습니다. 깊이 있는 내용은 추가 링크를 타고 들어가시면 정말 도움이 많이 될 거에요.

약간의 시나리오를 설정하겠습니다.
나는 오픈 소스 프로젝트에 참여해보려는 참이에요. 관심이 가는 걸 발견했네요.

잠깐, 내가 개발한 코드들을 관리하고 저장한다면 일단 저장소가 필요할텐데..?

네 맞습니다. 저장소가 등장합니다. 지금부터 자주 등장할 용어를 하나씩 확인해보겠습니다.

- Repository : '저장소'를 뜻하며 두 종류가 있습니다.

(1) Local Repository : 내 컴퓨터에 있는 저장소.

(2) Remote Repository : 인터넷으로 연결되어 있는 원격 저장소 (이게 깃허브, 가입했다고 칩니다)


다른 사람의 멋진 오픈소스 프로젝트를 발견했다! 협업에 참여해보고 싶은데!

깃허브에서 멋진 오픈소스 프로젝트를 발견했습니다. 참여하고 싶은데요! 깃허브에서 내 컴퓨터의 작업 공간으로 가져와볼까요!

Working directory : 작업 공간. 내 컴퓨터 상의 폴더 하나를 생각해주세요.

공유된 오프소스 프로젝트를 복제해서 내려받자.

이 과정을 Clone이라고 합니다. (복제니까 클론..너무 쉬운데..?) 깃허브에 올라온 소스 코드, 히스토리 전부를 통으로 내 작업공간에 가지고 와서 로컬 저장소(내 폴더 안에 .git이 생성되며 숨김상태이므로 폴더 속성에서 숨김표시를 해제하면 보임)를 만들어 저장합니다. 그리고 이 저장소는 원격저장소랑 연결됩니다.

열심히 수정을 했습니다.

이제 변경한 것들을 다시 원격 저장소로 올려야 겠다.

내가 작업공간 (Working directory)에서 수정한 내용은 그럼 계속 원격 저장소에 반영되나요? 아닙니다.

아래와 같은 큰 흐름을 가지는데요, 복잡하게 느껴지지만 대강 단계가 있구나를 보고 설명을 읽어주세요.

1) Add "수정한 파일인데 로컬저장소에 확정할 예정이니 추가하려구"

먼저 변경한 파일은 git add <파일 이름> 명령어를 통해 스테이지(준비영역)에 추가됩니다. 작업 중 생성하는 모든 파일이 스테이지로 가는 것이 아니라, 내가 add명령으로 추가한 파일만 스테이지로 넘어가 다음 단계의 커밋(Commit)을 기다리게 됩니다.

2) Commit "작업 끝. 이게 새 버전이야. 확정할 테니 로컬저장소에 저장하라구"

스테이지에 저장했던 파일이 확정되어 드디어 로컬저장소에 반영됩니다.

로컬저장소에 새 버전을 등록한 것입니다. "작업 끝!" 이 커밋은 시간 순으로 저장되는데 덕분에 최근 커밋부터 과거 수정된 내용들을 살펴볼 수 있습니다. 그리고 커밋을 할 때에는 간단한 메시지를 함께 넣습니다.
git commit -m "번경된 내용을 기록하는 설명 메시지"
* 버전 관리를 위해서 그리고 협업을 위해서는 (뭘 바꿨는지, 왜 바꿨는지 도통 이해가 안되는 메시지라면 안되니까요.) 이 짤막한 커밋 메시지의 형식도 중요한데요. 커밋 룰에 대해서 궁금하시다면 아래 블로그를 참고해보세요. 대표적으로 7가지 규칙(제목은 50자이내, 제목 다음 한 줄 비우기 등)이 있다고 해요.

Git Commit Message 규칙

안녕하세요! 오늘은 Git Commit Message 를 작성할 때 규칙에 대해서 공부 해보려구 합니다! 일단 왜 굳이 Commit Message 를 작성 할때 규칙에 맞게 작성 해야 할까요? GitHub 를 사용하는 이유는 프로젝트

jason-api.tistory.com

그러나, 여기까지는 로컬 저장소에만 변경된 파일이 반영된 상태입니다.

여기서 끝날 수도 있지만,

3) Push : "원격 저장소에 올려 반영하려구"


git push : Local Repository 에서 Remote Repository로 수정 파일 업로드/발행합니다.
이후 원격저장소에 변경된 내용을 가져올 때는 Pull (git pull)을 통해 다시 로컬 저장소로 전달 받는데요, 우리가 처음 살펴봤던 Clone과 다른 점은, 클론은 최초에 링크를 연결하고 + 파일,히스토리를 다 가져오는 것이고, Pull은 이미 원격저장소와 로컬저장소가 링크되어 있는 상태에서 변경내용을 전달받는다는 차이입니다. 그래서 클론은 최초에 한 번만 하면 되는 것이죠.

이 포스팅을 다듬는데 정말 오랜 시간이 걸렸습니다ㅠ 부디 저와 같은 초렙에게는 유익한 여러 글들 중의 하나로 기억되길 바랍니다. 정말 크게 다룬 것이라 더 자세한 내용은 이후 포스팅 (숨차서 좀 쉬고 올릴 수도..) 이나 아래 링크해둔 블로그들을 참고해보면 좋겠습니다! 오늘도 즐겁게 읽어주셔서 감사합니다! 다음에 만나요!


3. 읽어보면 도움이 될 추천 블로그

추천 블로그들입니다. 고르고 골랐는데도 6개네요. 파고들 생각이시라면 전부 읽어보시길 강력추천합니다.

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

rogerdudler.github.io

Git과 Github(깃허브)의 차이

[ Git ] 로컬에서 관리되는 버전 관리 시스템 (VCS : Version Control System) 소스코드 수정에 따른 버전을 관리해주는 시스템 [ Github ] 클라우드 방식으로 관리되는 버전 관리 시스템(VCS) 자체 구축이 아

codevang.tistory.com

그림으로 보는 Git의 개념 이해하기

Git은 Svn 이후로 현재 가장 많이 사용되어지는 형상관리 툴입니다. 위키백과를 보면 아래와 같이 정의를 하고 있습니다. 깃(Git /ɡɪt/)은 컴퓨터 파일의 변경사항을 추적하고 여러 명의 사용자들

ux.stories.pe.kr

Structure and Mechanism of Git | NagareLab

Git is a distributed version control system that can record and manage change history of source code. This knowledge describes its structure and mechanism.

www.nagarelab.com

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

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

backlog.com

Git 기본 개념 정리 노트

2016년 10월 9일 코코넛냠냠 1. 필수 개념 다음은 깃을 사용하기 위해서 반드시 알고 이해하고 넘어가야 하는 용어들입니다. - 작업공간 (working space) 개인 컴퓨터 환경에서 소스코드를 편집하는 일

nanite.tistory.com

반응형