GitHub은 어떤 서비스입니까?

GitHub는 개발 프로젝트의 소스 코드를 관리할 수 있는 웹 서비스입니다. GitHub에는 소스 코드를 공유할 수 있는 다양한 기능이 있어서 프로젝트의 소스 코드를 관리하는 데 드는 비용을 줄일 수 있습니다.

소스 코드의 공개나 이력의 열람, 버그 관리 등의 기능이 있어서, 개발자에게 있어서 매우 편리한 서비스입니다. 사내에서만 공개하고 사내 소스 코드의 버전 관리에 이용하는 기업도 있습니다.

GitHub의 기억해야 할 7가지 기초 지식이란?

여기에서는 GitHub를 사용하기 위해 기억해야 할 7가지 기본 지식을 소개합니다. 리포지토리나 푸시 등 GitHub을 이용할 때 빠뜨릴 수 없는 용어입니다. 꼭 기억해 둡시다.

GitHub 기초 지식 1: 원격 저장소

리포지토리는 디렉토리 및 파일 정보를 저장하는 곳입니다. 리포지토리의 관리하에 있는 디렉토리나 파일을 조작한 변경 내역을 기록하고 소스 코드 버전을 관리할 수 있습니다.

원격 리포지토리는 GitHub 등을 이용하여 인터넷에 저장한 리포지토리입니다. 원격 리포지토리에서 개발자의 로컬 PC 리포지토리로 복제하여 작업할 수 있으며 작업 결과를 원격 리포지토리에 동기화할 수 있습니다.

GitHub의 기본 지식 2: 로컬 리포지토리

로컬 리포지토리는 로컬 환경(내 PC)에 있는 리포지토리입니다. 새로 만들거나 원격 리포지토리에서 복제하여 로컬 리포지토리에서 프로그램 버그 수정 및 기능 추가를 수행할 수 있습니다.

로컬로 작업한 결과를 공유하려면 원격 리포지토리에 업로드하고 게시할 수 있습니다. 다른 개발자의 작업 내용을 원격 저장소에서 가져올 수도 있습니다.

GitHub 기초 지식 3: 푸시

푸시는 로컬 리포지토리를 원격 리포지토리에 동기화하고 자신의 커밋(등록 내용)을 반영하는 것입니다. 또한 팀에서 개발하는 경우 자신 이외의 사람이 푸시하여 원격 저장소의 프로그램이 변경되었을 수 있습니다.

이 때 원격 리포지토리의 변경 내용을 로컬 리포지토리와 동기화할 수 있습니다. 리모트 리포지토리의 변경을 로컬에 동기화하는 것을 풀이라고 합니다.

GitHub 기초 지식 4: 커밋

커밋은 로컬 환경에 파일 및 디렉토리 상태와 같은 변경 데이터를 등록하는 것입니다. 로컬 리포지토리의 변경 내용을 커밋(등록)하고 GitHub에 데이터를 푸시(전송)합니다.

커밋은 언제든지 디렉토리 상태를 저장할 수 있으므로 버전 기록을 남길 수 있습니다. 또한 디렉토리 상태를 커밋한 시점으로 되돌릴 수 있습니다.

GitHub 기초 지식 5: 브랜치

브랜치는 변경 이력의 흐름을 분기시켜 기록하는 것입니다. 오리지널 이력(Master Branch)에서 분기한 브랜치는 다른 브랜치의 영향을 받지 않습니다.

릴리즈 중인 버전에 영향을 주지 않고 버그 수정이나 추가 기능을 개발하고 싶을 때 등 여러 브랜치를 만들고 각각의 개발을 진행할 수 있습니다. 또, 작업 후에 분기시킨 브랜치를 오리지널에 통합할 수 있어 병합(통합)이라고 합니다.

GitHub 기초 지식 6: 풀 요청

풀 요청은 검토자에게 프로그램의 소스 코드 변경을 알리고 원래 업데이트를 요청하는 기능입니다. 코드를 검토하면 혼자서 놓친 버그나 코드의 실수 등을 발견할 수 있어 프로그램의 품질 향상으로 이어집니다.

GitHub 기초 지식 7: 포크

포크는 GitHub의 자신의 계정 영역에 기존 리포지토리를 복제하는 기능입니다. 공유되지 않은 리포지토리에 대해서는 업데이트할 수 없지만 포크된 리포지토리에서는 작업 내용을 업데이트할 수 있습니다.

포크한 자신의 리포지토리의 갱신을, 기존의 리포지터리에 풀 리퀘스트 하는 것으로, 관리자에게 갱신 내용을 통지할 수 있어 리포지토리를 공유하지 않아도 공동 개발이 가능하게 됩니다.

GitHub에서 할 수 있는 일은 무엇입니까?

여기에서는 GitHub에서 할 수 있는 일은 무엇인가, 「버전 관리」와 「소스 코드 관리」라고 하는 2개의 점으로부터 해설하겠습니다. GitHub는 팀에서 프로그래밍에 활용할 수 있으며 WEB 디자이너와 WEB 라이터의 텍스트 데이터 등의 관리에도 사용되고 있습니다.

그럼 자세히 살펴보겠습니다.

버전 관리 가능

버전 제어는 프로그램의 소스 코드와 같은 파일의 변경 내역을 관리하는 것입니다. 파일의 변경 내용이나 추가 등의 정보의 이력을 관리하는 것으로, 이전의 수정 내용을 확인하거나, 어느 시점의 내용으로 되돌릴 수 있습니다.

버전 관리를 통해 버그가 포함된 버전을 신속하게 확인하거나 정상 버전으로 되돌릴 수 있습니다.

소스 코드 관리 가능

소스 코드를 GitHub에서 공유함으로써 여러 사람의 개발 프로젝트를 효율적으로 진행할 수 있습니다. GitHub은 정보를 공유할 뿐만 아니라 프로젝트 진행, 과제 관리, 소스 코드 검토 등 팀 개발에 위력을 발휘하는 기능을 갖추고 있습니다.

예를 들어, Issues에서는 소스 코드의 문제점이나 버그의 재현 순서 등에 대해서, 타이틀이나 코멘트를 기록해, 팀에의 정보의 주지나 과제의 진척 관리를 할 수 있습니다.

GitHub 요금 플랜이란?

GitHub에서는 무료 플랜과 유료 플랜을 선택할 수 있습니다. 이전까지 무료 플랜에서 공동 작업자는 공용 리포지토리만 무제한이었지만 비공개 리포지토리도 무제한이었습니다. 개발자의 편의성을 높이기 위해 항상 요금 플랜을 검토합니다.

또한 개인용 플랜뿐만 아니라 Enterprise 등 기업용 플랜도 존재합니다. 최신 요금 플랜은 GitHub 사이트의 “가격”에서 확인하세요.

무료 플랜

무료(Free) 플랜은 공용 리포지토리와 개인 리포지토리, 공동 작업자(협업자)도 무제한으로 사용할 수 있습니다. 커뮤니티 보드에서 지원을 받을 수도 있습니다.

비공개 리포지토리의 GitHub Actions는 매월 2,000분까지 사용할 수 있습니다. GitHub Packages는 월 500MB까지 사용할 수 있습니다. 둘 다 공용 리포지토리에서 무료로 이용할 수 있습니다.

Pro 플랜

Pro 플랜은 현재 Team 플랜에 통합된 유료 플랜입니다. 무료 플랜의 모든 기능을 이용할 수 있으며, 필수 검토자와 코드 소유자와 같은 기능이 추가되어 사용자당 $4로 이용 가능합니다.

비공개 리포지토리의 GitHub Actions는 매월 3,000분까지 사용할 수 있습니다. GitHub Packages는 월 2GB까지 사용할 수 있습니다. 둘 다 공용 리포지토리에서 무료로 이용할 수 있습니다.

기본 GitHub의 5가지 사용법

여기에서는 GitHub에 데이터를 전송하는 기본적인 사용법을 설명합니다. 흐름으로서는, 로컬 PC로 개발한 내용을 로컬 리포지터리의 인덱스에 추가해, 커밋합니다. 그런 다음 로컬 리포지토리의 내용을 GitHub의 원격 리포지토리로 푸시합니다.

그럼 자세히 살펴보겠습니다.

GitHub 사용법 1: 리포지토리 생성 및 복제 방법

우선은 리포지토리의 작성입니다. GitHub에 로그인하고 ‘New Repository’를 누릅니다. 다음 화면에서 Repository name을 입력하고 Public 또는 Private를 선택하고 Create repository를 누르면 원격 리포지토리가 생성되고 리포지토리의 주소가 표시됩니다.

기존 리포지토리의 페이지에 액세스하여 복제(복제)를 만들 수도 있습니다.

GitHub 사용법 2: 파일을 만들고 편집하는 방법

터미널을 이용하고 다음 명령을 입력합니다. 우선은 「mkdir {디렉토리명}」으로 새롭게 디렉토리를 작성합니다. 그런 다음 cd {디렉토리 이름}으로 디렉토리를 이동합니다. 위 명령의 괄호 내용은 임의로 합니다.

마지막으로 ‘git init’을 실행하면 해당 위치에 로컬 리포지토리가 만들어집니다. 이 디렉토리 아래에 버전 관리하려는 HTML 파일 등을 저장합니다.

GitHub 사용법 3: 파일을 인덱스에 추가하는 방법

방금 만든 파일을 로컬 리포지토리에 추가하려면 인덱스에 파일을 추가합니다. 인덱스는 로컬 리포지토리에 커밋하기 위해 변경된 내용을 일시적으로 저장하는 영역입니다.

git add {filename}

명령을 실행하여 인덱스에 추가합니다.

GitHub 사용법 4: 추가 파일을 커밋하는 방법

다음은 인덱스에 추가한 파일을 커밋합니다. 커밋이란 리포지토리에 파일 추가 및 변경을 등록하는 작업을 의미합니다. 인덱스에 추가한 파일만 커밋 대상이 됩니다.

먼저 로컬 리포지토리에 변경 내용을 커밋한 다음 GitHub의 원격 리포지토리에 변경 내용을 보냅니다.

로컬 리포지토리에 커밋

터미널에서 git commit -m “{모든 메시지}”를 실행하여 커밋 할 수 있습니다. 커밋하면 로컬 리포지토리에 파일 변경 사항이 등록되었습니다.

명령의 “-m”은 커밋에 메시지를 입력하는 옵션입니다. 커밋 메시지를 입력하여 자세한 기록을 남길 수 있습니다. 로그에서 커밋의 기록 내용을 확인하는 데 도움이됩니다.

GitHub 사용법 5: 원격 리포지토리에 반영

원격 리포지토리에 커밋 내용을 반영하기 위해 원격 리포지토리의 주소 정보를 연결합니다. 이 주소 정보는 GitHub에서 원격 리포지토리를 만들 때 표시되었습니다.

터미널에서 git remote add origin {리포지토리의 주소}를 실행하여 원격 리포지토리의 주소를 연결합니다.

로컬 리포지토리를 푸시하는 방법

로컬 리포지토리의 변경 내용을 GitHub의 원격 리포지토리로 푸시(제출)하기 위해 터미널에서

“git push origin master” 명령을 실행합니다.

GitHub 사용자 이름과 비밀번호 확인이 있으므로 입력합니다. 이것으로 로컬 리포지토리의 변경 사항을 GitHub의 원격 리포지토리로 보낼 수 있었습니다.

GitHub을 사용해 보자.

개발 및 홈페이지제작 현장에서 GitHub은 팀 프로젝트를 진행하는데 있어서 다양한 기능에 의해 프로젝트 추진을 효율화합니다. 도입하고 있는 기업도 많아, GitHub를 이용한 경험이 있으면, 채용시에도 환영될 것입니다.

GitHub의 기본 기능의 대부분은 무료이며 즉시 시도 할 수 있습니다.