개발자들은 버전 관리 시스템을 통해 소스코드의 변경 이력을 관리하고, 협업할 때는 온라인 플랫폼을 이용해 소스를 공유하곤 합니다. Git은 컴퓨터 로컬에서 동작하는 분산 버전 관리 시스템이고, GitHub는 Git 저장소를 인터넷에 올려서 백업하거나 다른 사람과 협업할 수 있게 해주는 서비스입니다. 이 글에서는 Git과 GitHub의 차이를 설명하고, 설치부터 로컬 저장소 생성, GitHub에 푸시, 협업을 위한 기본 워크플로우까지 차례대로 알아보겠습니다.
Git과 GitHub의 차이
- Git: 파일과 소스코드의 변경 이력을 로컬에 저장·관리하는 버전 관리 시스템입니다. 예를 들어 코드를 수정할 때마다 *커밋(commit)*을 통해 스냅샷을 남길 수 있습니다. Git은 분산형이라 인터넷 없이도 로컬에서 브랜치를 만들거나 이전 버전으로 돌아갈 수 있습니다. 하지만 기본적으로 저장된 변경사항은 로컬 컴퓨터에만 있기 때문에 다른 사람은 확인할 수 없습니다.
- GitHub: Git 저장소를 **원격(온라인)**에 올리고 공유할 수 있는 웹 기반 플랫폼입니다. GitHub에서는 클라우드 서버에 저장소를 만들고, 웹 인터페이스로 소스를 보고, 협업(여러 사람이 같은 프로젝트를 함께 작업)할 수 있습니다. 예를 들어 원격 저장소를 통해 다른 개발자가 올린 변경사항을 쉽게 가져오거나, 내 변경사항을 팀원에게 공유할 수 있습니다. 또한 GitHub에서는 이슈(issue), 풀 리퀘스트(PR), 위키(wiki) 등 협업에 유용한 다양한 부가 기능도 제공합니다.
위 두 가지를 정리하면, Git은 로컬에서 기록을 관리하는 도구이고, GitHub는 그런 Git 저장소를 온라인에 올려서 공유·협업할 수 있게 해주는 서비스입니다.
Git 설치 방법 (Windows/Mac 공통)
먼저 Git을 사용하려면 컴퓨터에 Git을 설치해야 합니다. Git 공식 웹사이트(git-scm.com)에서 운영체제에 맞는 설치 프로그램을 내려받아 설치할 수 있습니다.
- Windows: Git for Windows 설치 프로그램을 다운로드해 실행하면 됩니다. 기본 옵션을 그대로 진행하면 Git과 Git Bash(명령줄) 도구가 설치됩니다. 설치 후 윈도우 검색에서 Git Bash를 실행할 수 있습니다.
- Mac: 최신 macOS에서는 Xcode Command Line Tools를 통해 쉽게 Git을 설치할 수 있습니다. 터미널을 열고 다음 명령어를 입력하면 Git 설치 여부를 확인합니다. 설치되지 않았다면 자동으로 설치를 안내합니다.이 명령을 실행했을 때 Git 버전 정보(예: git version 2.xx.x)가 출력되면 이미 설치된 것입니다. 만약 설치되어 있지 않다면 안내 메시지가 나올 수 있습니다. 또는 Homebrew 패키지 관리자를 사용 중이라면 터미널에서 brew install git 명령으로 설치할 수도 있습니다.
(참고: Git 다운로드 페이지에서도 macOS용 인스톨러를 받을 수 있습니다.) - $ git --version
설치가 끝나면 다시 터미널에서 git --version 명령을 실행하여 Git이 정상적으로 설치되었는지 확인하세요.
$ git --version
git version 2.43.0 # 설치된 Git 버전 예시
GitHub 계정 생성 및 기본 설정
GitHub를 사용하려면 먼저 웹사이트에 GitHub 계정을 생성해야 합니다.
- GitHub 회원가입: 웹브라우저에서 github.com에 접속하여 회원가입(Sign Up)을 합니다. 사용자 이름(username), 이메일, 비밀번호를 입력하고 이메일 인증 절차를 완료하세요. 가입 후 로그인하면 GitHub 대시보드로 이동합니다.
- GitHub 프로필 설정(선택 사항): 로그인 후 우측 상단 프로필 아이콘을 클릭하고 Settings 메뉴에서 프로필 사진이나 기타 설정을 할 수 있습니다. (기본적으로 꼭 변경하지 않아도 됩니다.)
- 로컬 Git 설정: Git을 사용하여 커밋할 때는 사용자 정보를 남겨야 합니다. 터미널(또는 Git Bash)에서 다음 명령어로 사용자 이름과 이메일을 설정합니다. GitHub 계정에 등록된 이메일을 사용하는 것이 좋습니다.이 정보는 이후 커밋 기록에 작성자로 표시됩니다. --global 옵션을 사용하면 한 번만 설정해두면 모든 프로젝트에 적용됩니다.
- $ git config --global user.name "홍길동" $ git config --global user.email "hong@example.com"
- SSH 키 생성 및 등록(선택 사항): GitHub와 인증 없이 안전하게 연동하려면 SSH 키를 등록할 수 있습니다. 터미널에서 다음 명령으로 SSH 키 페어를 생성합니다.엔터를 눌러 기본 파일 경로(~/.ssh/id_ed25519)에 저장하면 공개키와 개인키 한 쌍이 생성됩니다. 생성 후 ~/.ssh/id_ed25519.pub 파일의 내용을 복사하여 GitHub 웹사이트로 돌아갑니다. Settings > SSH and GPG keys 메뉴에서 New SSH key 버튼을 클릭하고, 키 내용을 붙여넣기 합니다. 이제 원격 저장소 URL을 SSH 형식(예: git@github.com:username/repo.git)으로 사용하면 비밀번호 입력 없이 바로 푸시/풀할 수 있습니다.
- (참고: SSH 키 설정이 복잡하다면, 처음에는 HTTPS 방식으로 원격 저장소에 접근해도 됩니다. 이 경우에는 GitHub에서 발급한 Personal Access Token(PAT)을 비밀번호 대신 사용해야 합니다.)
- $ ssh-keygen -t ed25519 -C "hong@example.com"
로컬에서 Git 저장소 생성 → GitHub에 푸시하기
이제 로컬에서 Git 저장소를 만들고, GitHub에 올려보겠습니다. 예를 들어 "my-project"라는 이름의 새 프로젝트를 만든다고 가정합니다.
- 프로젝트 폴더 생성: 먼저 터미널에서 프로젝트용 폴더를 만듭니다.
- $ mkdir my-project $ cd my-project
- Git 저장소 초기화: 해당 폴더에서 Git 저장소를 초기화합니다. 이 과정으로 .git 디렉토리가 생성되어 버전 관리가 시작됩니다.
- $ git init
- 파일 추가 및 커밋: README 파일 같은 소스 파일을 만들고 첫 커밋을 수행합니다.
- $ echo "# My Project" > README.md # README.md 파일 생성 $ git add README.md # 파일을 스테이지에 추가 $ git commit -m "프로젝트 시작" # 첫 커밋 수행
- GitHub에서 원격 저장소 생성: 웹브라우저에서 GitHub에 접속하여 우측 상단 + > New repository를 클릭합니다. 저장소 이름을 my-project로 지정하고(설명은 입력해도 되고 생략해도 됩니다), Create repository 버튼을 클릭합니다. “Add a README file” 같은 옵션은 선택하지 않고 빈 저장소(empty repository)로 만듭니다. 생성 후 GitHub 페이지에 repository URL(예: https://github.com/username/my-project.git)이 표시됩니다.
- 원격 저장소 추가 및 푸시: 로컬 저장소에서 방금 생성한 GitHub 저장소와 연결합니다. 터미널에서 다음 명령어를 실행합니다.
- 첫 번째 명령에서 origin은 원격 저장소의 이름입니다(기본 관례). GitHub에서 복사한 URL을 사용하세요.
- 두 번째 명령은 로컬 브랜치 이름이 master로 되어 있다면 main으로 바꾸는 과정입니다. 최근 Git과 GitHub는 기본 브랜치를 main으로 사용하므로 일치시키기 위함입니다.
- 세 번째 명령에서 -u 옵션은 upstream을 설정하여 이후 git push만으로도 이 원격 브랜치에 푸시할 수 있도록 해줍니다.
- $ git remote add origin https://github.com/username/my-project.git $ git branch -M main # 로컬 브랜치를 'main'으로 이름 변경 (필요 시) $ git push -u origin main # main 브랜치의 커밋을 GitHub로 푸시
- 결과 확인: 위 명령이 성공하면 로컬의 커밋이 GitHub 원격 저장소에 업로드됩니다. 웹브라우저에서 GitHub 저장소 페이지를 새로고침하면 README.md 파일이 올라온 것을 볼 수 있습니다. 이제 로컬 저장소와 GitHub 원격 저장소가 연결되었습니다.
협업을 위한 기본 워크플로우
동료와 함께 프로젝트를 작업할 때는 저장소를 **복제(clone)**하고, 자신의 **브랜치(branch)**에서 작업한 뒤 **푸시(push)**하고, 변경사항을 가져오기(pull) 하는 과정을 반복합니다. 기본적인 예시 워크플로우는 다음과 같습니다.
- 원격 저장소 복제(clone)
이미 GitHub에 올라간 저장소를 로컬로 복제하려면 git clone 명령을 사용합니다. 터미널에서 저장소 URL을 지정해 실행합니다.그러면 현재 디렉토리에 my-project 폴더가 생기고, 그 안에 원격 저장소의 내용이 복제됩니다. 복제된 폴더로 이동하면 자동으로 메인 브랜치에 체크아웃(checkout)된 상태입니다. - $ git clone https://github.com/username/my-project.git
- 새로운 브랜치 생성
독립적인 기능 개발을 위해서는 현재 브랜치(main)에서 새 브랜치를 만듭니다. 예를 들어 new-feature라는 이름의 브랜치를 생성해 이동하려면 다음과 같이 합니다.이 명령으로 new-feature 브랜치가 만들어지고 그 브랜치로 자동 전환됩니다. 이제 이 브랜치에서 코드를 수정하거나 새로운 파일을 추가할 수 있습니다. - $ cd my-project $ git checkout -b new-feature
- 코드 변경 커밋과 푸시
작업이 끝나면 변경된 파일을 스테이지에 추가하고 커밋합니다.커밋 후 git push로 원격 저장소에 올립니다. 브랜치를 처음 푸시할 때는 아래처럼 원격 브랜치를 지정해야 합니다.이 명령은 로컬의 new-feature 브랜치를 GitHub 원격 저장소의 new-feature 브랜치로 업로드합니다. GitHub 웹사이트에서 이 브랜치를 보면 커밋된 내용이 반영된 것을 확인할 수 있습니다. - $ git push origin new-feature
- $ git add . # 변경된 모든 파일을 스테이지에 추가 $ git commit -m "새 기능 구현 완료"
- 원격 변경사항 가져오기(pull)
협업 중 다른 사람이 메인 브랜치(main)에 커밋을 올렸다면, 로컬 저장소에서 최신 내용으로 업데이트해야 합니다. 메인 브랜치로 전환한 뒤 git pull을 사용합니다.이 명령은 GitHub의 메인 브랜치에서 최신 커밋을 가져와서 로컬 메인 브랜치와 병합합니다. (내 로컬 변경사항이 없다면 그냥 최신 상태가 됩니다.) - $ git checkout main $ git pull origin main
- 브랜치 병합 및 협업
작업이 완료된 새 브랜치는 로컬에서 main 브랜치로 병합할 수 있습니다. 다음과 같이 메인으로 돌아와 작업 브랜치를 병합합니다.또는 GitHub 웹사이트에서 Pull Request 기능을 이용해 브랜치를 검토하고 병합할 수도 있습니다. 이렇게 하면 팀원들이 코드 변경을 리뷰한 뒤 메인 브랜치에 반영하게 됩니다. - $ git checkout main $ git merge new-feature $ git push origin main
이처럼 clone → branch → commit → push → pull 과정을 통해 여러 명이 하나의 프로젝트를 안전하게 관리할 수 있습니다. 항상 최신 상태를 유지하기 위해 자주 git pull로 원격 변경사항을 가져오고, 새로운 기능은 별도 브랜치에서 작업한 뒤 메인 브랜치에 병합하는 습관을 들이면 협업이 매끄럽게 이루어집니다.
위 과정을 따라하면 로컬 컴퓨터에 있는 프로젝트를 GitHub로 올려 백업할 수 있고, 동료와 코드 변경사항을 쉽게 주고받을 수 있습니다. 처음에는 익숙하지 않을 수 있지만, 한 번 차근차근 따라해 보면 Git과 GitHub의 기본 개념과 명령어 사용법이 자연스럽게 이해될 것입니다. 이제 터미널을 열고 Git과 GitHub를 시작해 보세요!
'개발도구 & 환경' 카테고리의 다른 글
Terraform 기초 사용법 (1) | 2025.05.21 |
---|