소프트웨어 개발 및 협업 프로젝트를 위한 웹 기반의 소스코드 관리 서비스입니다. 주로 Git 버전 관리 시스템을 기반으로 하며, 개발자들이 소스 코드를 공유, 협업 및 관리할 수 있는 중요한 도구 중 하나이며, GitHub은 코드 호스팅, 이슈 추적, 풀 리퀘스트, 웹 기반의 코드 브라우징, 협업 기능, 프로젝트 관리, GitHub Actions를 통한 지속적 통합 및 배포 등 다양한 기능을 제공합니다.
GitHub를 사용하려면 먼저 branch에 대해 알아야합니다. branch란 간단히 말하자면 독립적으로 작업을 수행하기 위한 영역이라고 생각하시면 됩니다.
필요에 의해 만들어지는 branch는 각각의 다른 branch에 영향을 줄 수 없기에 협업시 동시에 여러명이 작업을 진행할 수 있습니다.
기본적으로 Git 저장소를 생성하면 master branch가 생성되는데 사용자는 이에 새로운 branch를 생성하여 작업을 수행하고 분기된 branch들을 master에 합칠 수 있습니다.
위에 사진과 같이 파란점인 master branch를 두고 보라색, 초록색 점인 서브 branch를 두어 각각의 branch에서 작업을 수행한 뒤 master에서 합병해줍니다.
다음은 자주쓰는 branch 명령어입니다.
git branch --> 현재 생성되어있는 branch 조회, 접속된 branch에는 * 표시
git branch -m [ branch_name ] --> 새로운 branch 생성
git checkout [ branch_name ] --> 해당 branch로 접속
git merge [ branch_name ] --> 브랜치 합병, master에서만 가능
git branch -d [ branch_name ] --> branch 삭제
코드 호스팅 : GitHub은 Git 저장소를 호스팅하고, 개발자들은 원격 저장소에서 소스 코드를 업로드하고 공유할 수 있습니다.
이슈 추적 : 프로젝트의 버그, 개선 사항 또는 작업 항목을 추적하고 관리하는 기능을 제공합니다.
풀 리퀘스트 : 다른 개발자들에게 코드 변경 사항을 제안하고, 코드 리뷰 및 통합을 쉽게 할 수 있는 기능입니다.
웹 기반 코드 브라우징 : 저장소 내의 코드를 웹 브라우저에서 살펴보고 비교할 수 있습니다.
협업 기능 : 여러 개발자가 함께 작업하고 협력할 수 있도록 고안되었습니다.
프로젝트 관리 : 프로젝트 관리 도구를 통해 작업을 구성하고 추적할 수 있습니다.
GitHub Actions : 지속적 통합 및 지속적 배포 (CI/CD)를 설정하고 자동화하는 데 사용할 수 있는 기능을 제공합니다.
사용법에 대하여 큰 흐름을 작성해보겠습니다. 1번은 최초 프로젝트 진행 시 한번만 시행하면 되고, 이 후 나머지 절차를 반복하는 방식으로 사용합니다.
GitHub에 접속하여 로그인 후 우측 상단에 +, new repository를 선택하여 프로젝트를 할당할 원격 저장소를 생성합니다.
Repository name란에 임의의 저장소 명을 적어 주시고, 공개 혹은 비공개 (Public or Private)를 선택 후 하단의 Create repository을 선택하면 새 저장소가 생성됩니다.
필요한 경우 Description란에 간략한 프로젝트 설명을 적으실 수 있습니다.
Add a README file을 체크하시면 저장소에 미리 작성한 설명파일을 생성해 둘 수 있습니다.
원격 저장소에 저장할 파일 혹은 프로젝틀 생성합니다.
디렉토리에 저장하신 후 해당 디렉토리 경로에서 "git init" 명령어로 현재 디렉토리를 새로운 Git 저장소로 변환해줍니다.
git init
"git remote add origin [ url ]" 을 통해 내 Repository URL 정보를 받아와 연동시킵니다.
Git Repository URL은 Git Home에 Code 버튼을 클릭하면 볼 수 있습니다.
git remote add origin https://github/user_name/repository_name
프로젝트의 내용을 생성 혹은 수정할 경우, "git add [ project_name or file_name ]"으로 스테이징 영역에 데이터를 저장합니다.
git add . --> 현재 경로에 모든 파일을 저장
git add file_name --> 특정 파일만 저장
git status --> 스테이징 영역에 저장된 파일 상태 조회
스테이징 영역에 저장된 파일을 로컬 저장소에 커밋합니다. 커밋은 변경된 사항들을 로컬 저장소에 기록해주는 작업입니다. 커밋시에는 메세지를 함께 작성해 주어야하는데 협업에서 변경 사항을 간단히 알려줄 수 있는 메세지를 적어두기 위해서입니다.
git commit -m 'upload file'
git log --> 커밋 로그를 조회
마지막으로 로컬 저장소에 commit 되어 있는 파일들을 push 하고 GitHub의 사용자 이름과 암호를 입력해 원격 저장소에 업데이트 해주면 됩니다.
GitHub 사이트에서 파일에 제대로 업데이트 되었는지 확인할 수 있습니다.
git push origin [ branch_name ]