Ubuntu에서 GitHub 사용 방법: Git, SSH, VS Code를 포함한 초보자부터 고급자까지 완전 가이드

目次

1. 소개

왜 Ubuntu와 GitHub를 연결해야 할까?

최근 몇 년간 Git와 GitHub의 사용은 소프트웨어 개발 및 시스템 운영에서 표준 관행이 되었습니다. Ubuntu와 같은 Linux 환경에서 작업하는 엔지니어와 프로그래머에게 GitHub와의 통합은 일상적인 워크플로우의 일부입니다.

Git은 소스 코드 버전 히스토리를 관리하는 도구이며, 여러 개발자 간 효율적인 협업에 필수적입니다. 반면 GitHub는 Git으로 관리되는 저장소를 온라인으로 공유·배포할 수 있게 해 주는 호스팅 서비스로, 전 세계 개발자들이 코드를 교환하는 허브 역할을 합니다.

Ubuntu에서 GitHub를 사용하는 이유는?

Ubuntu는 개발자들 사이에서 매우 인기가 높은 Linux 배포판이며, 오픈소스 개발과의 뛰어난 호환성으로 알려져 있습니다. Git 및 기타 개발 도구를 손쉽게 설치할 수 있는 환경을 제공하므로, GitHub와의 통합이 원활하고 효율적입니다.

Ubuntu와 GitHub를 결합하는 전형적인 사용 사례는 다음과 같습니다:

  • Python, C++, 기타 소스 코드를 GitHub에 관리·공유
  • 오픈소스 프로젝트에 기여
  • 작업물을 포트폴리오로 공개

이 글에서 배울 내용

이 가이드는 Ubuntu에서 기본부터 고급까지 GitHub 사용법을 다음 단계별로 설명합니다:

  • Ubuntu에 Git 설치하기
  • 초기 Git 설정 및 SSH 구성
  • GitHub 저장소 만들기·관리하기
  • Visual Studio Code를 활용한 효율적인 개발
  • 흔히 발생하는 문제 해결 팁 및 FAQ

처음 GitHub를 사용하는 사람도 실제 명령 예시와 중요한 주석을 포함해 안전하게 따라 할 수 있습니다. Ubuntu에서 GitHub를 최대한 활용하고 싶다면 끝까지 읽어 보세요.

2. Ubuntu에 Git 설치하기

Git이란? 간단히 복습

Git은 버전 관리 시스템(VCS) 으로, 소스 코드의 변경 이력을 관리합니다. 개발자는 이전 상태로 되돌릴 수 있고, 동시에 협업할 수 있습니다.

Ubuntu와 같은 Linux 환경의 큰 장점은 Git을 매우 쉽게 설치할 수 있다는 점입니다. 아래 방법을 사용하면 터미널에서 몇 분 안에 설치를 마칠 수 있습니다.

APT로 Git 설치하기

Ubuntu에 Git을 설치하는 가장 일반적인 방법은 APT(Advanced Package Tool) 를 이용하는 것입니다. 다음 절차를 따라 주세요:

1. 패키지 목록 업데이트

sudo apt update

이 명령은 최신 패키지 정보를 가져옵니다. 새 소프트웨어를 설치하기 전에 항상 실행해야 합니다.

2. Git 설치

sudo apt install git

“Y/n” 프롬프트가 나오면 y 를 입력하고 Enter 키를 눌러 설치를 시작합니다.

Git 설치 확인

설치가 끝난 뒤, Git이 정상적으로 설치됐는지 확인합니다:

git --version

다음과 같은 출력이 보이면 Git 설치가 성공한 것입니다:

git version 2.34.1

버전 번호는 Ubuntu 릴리즈에 따라 다를 수 있지만, 버전 정보가 표시되면 성공적인 설치를 의미합니다.

Snap으로 설치하기 (선택 사항)

snap 명령을 사용해 Git을 설치할 수도 있지만, APT가 일반적으로 더 안정적이고 널리 사용됩니다. 특별한 이유가 없는 한 APT 사용을 권장합니다.

3. 초기 Git 설정

Git 사용 전 필수 설정

Git이 설치되면 다음 단계는 사용자 정보와 인증을 설정하는 것입니다. 올바른 설정은 원격 저장소와 팀 워크플로우와의 원활한 상호작용을 보장합니다.

Git 사용자 이름과 이메일 설정

Git은 각 커밋이 누가 만들었는지 기록합니다. 따라서 사용자 이름과 이메일 주소를 설정해야 합니다.

설정 명령

git config --global user.name "Your Name"
git config --global user.email "you@example.com"

이 값은 GitHub 계정과 정확히 일치할 필요는 없지만, GitHub와 동일한 이메일을 사용하면 커밋을 올바르게 연결하는 데 도움이 됩니다.

설정 확인

git config --list

이 명령은 현재 Git 설정을 표시합니다.

SSH 키 생성 및 등록

HTTPS도 지원하지만, SSH 인증은 반복적인 비밀번호 입력을 없애고 보다 안전하고 효율적인 작업 흐름을 제공합니다.

1. SSH 키 생성

ssh-keygen -t ed25519 -C "you@example.com"

Enter 키를 여러 번 눌러 개인 키(~/.ssh/id_ed25519)와 공개 키(~/.ssh/id_ed25519.pub)를 생성합니다.

2. SSH 에이전트 시작 및 키 추가

eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519

SSH 키가 이제 사용 준비되었습니다.

3. 공개 키를 GitHub에 추가

공개 키를 복사합니다:

cat ~/.ssh/id_ed25519.pub

그런 다음 GitHub에 등록합니다:

  1. GitHub에 로그인합니다
  2. 프로필 이미지를 클릭 → Settings
  3. “SSH and GPG keys” 선택
  4. “New SSH key”를 클릭하고, 키를 붙여넣은 뒤 저장합니다

4. SSH 연결 테스트

ssh -T git@github.com

호스트를 신뢰하라는 프롬프트가 나오면 yes를 입력합니다.

성공하면 다음과 같이 표시됩니다:

Hi your-username! You've successfully authenticated, but GitHub does not provide shell access.

권장 다음 단계

이 설정이 완료되면 이제 GitHub 저장소를 복제하고, 푸시하고, 풀할 수 있습니다. 다음 섹션에서는 GitHub 저장소를 실제로 생성하고 운영하는 방법을 설명합니다.

4. GitHub 저장소 작업

GitHub에서 새 저장소 만들기

GitHub에 로그인한 후, 새 저장소를 만들기부터 시작합니다.

단계 (웹 브라우저 사용)

  1. GitHub 홈페이지 오른쪽 상단에 있는 “+” 버튼을 클릭하고 “New repository”를 선택합니다.
  2. 다음 정보를 입력합니다:
  • Repository name : 예시: my-first-repo
  • Description (optional) : 간단한 설명
  • Public / Private : 저장소 공개 여부를 선택합니다
  1. “Create repository”를 클릭합니다.

생성 후, 저장소 URL이 표시됩니다. 이 URL을 사용해 저장소를 복제하고 관리합니다.

기존 GitHub 저장소 복제

저장소를 로컬 Ubuntu 환경에 복사하려면 git clone 명령을 사용합니다.

git clone git@github.com:your-username/my-first-repo.git

이 예시는 SSH를 사용합니다. HTTPS를 사용할 경우 URL이 다릅니다.

실행 후, my-first-repo라는 디렉터리가 생성되고 그 안에 저장소 파일이 들어갑니다.

파일 변경, 스테이징 및 커밋 워크플로우

1. 파일 추가 또는 편집

예를 들어, 새 파일을 생성합니다:

echo "# My First GitHub Project" > README.md

2. 변경 사항 스테이징

git add README.md

스테이징은 다음 커밋에 포함될 변경 사항을 선택합니다.

3. 변경 사항 커밋

git commit -m "Initial commit: add README.md"

이제 변경 사항이 로컬 저장소 히스토리에 저장되었습니다.

변경 사항을 GitHub에 푸시

로컬 변경 사항을 원격 GitHub 저장소에 반영하려면 git push를 사용합니다.

git push origin main

기본 브랜치가 main이 아니라면(예: master), 브랜치 이름을 적절히 바꾸세요.

원격 변경 사항을 로컬에 풀

다른 개발자가 변경을 했을 경우, 다음 명령으로 로컬 저장소를 업데이트합니다:

git pull origin main

원격 변경 사항을 로컬 브랜치에 병합합니다.

일반적인 추가 작업

  • 원격 저장소 확인:
    git remote -v
    
  • 추후 다른 GitHub 저장소 추가:
    git remote add origin git@github.com:your-username/another-repo.git
    
  • README.md 또는 .gitignore 편집도 동일한 워크플로우를 따릅니다.

5. Visual Studio Code와 통합

VS Code가 Git 작업에 이상적인 이유

Ubuntu에서 GitHub를 사용할 때 Visual Studio Code (VS Code)와 결합하면 생산성이 크게 향상됩니다. VS Code는 Microsoft가 개발한 오픈소스 편집기로 우수한 Git 통합 기능으로 유명합니다. GUI를 통해 커밋, 푸시, 차이점 검토 등을 할 수 있어 초보자에게 친숙합니다.

Ubuntu에 VS Code 설치

다음 단계에 따라 Ubuntu에 VS Code를 쉽게 설치할 수 있습니다.

1. Microsoft 저장소 추가

sudo apt update
sudo apt install wget gpg
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg
sudo install -o root -g root -m 644 packages.microsoft.gpg /usr/share/keyrings/

2. 저장소 등록

sudo sh -c 'echo "deb [arch=amd64 signed-by=/usr/share/keyrings/packages.microsoft.gpg] https://packages.microsoft.com/repos/vscode stable main" > /etc/apt/sources.list.d/vscode.list'

3. VS Code 설치

sudo apt update
sudo apt install code

설치 후, 터미널에서 code를 입력하여 VS Code를 실행할 수 있습니다.

내장 Git 지원

VS Code는 기본적으로 Git 통합을 포함하므로 기본 Git 작업에 추가 플러그인이 필요 없습니다. 고급 사용을 위해 다음 확장 프로그램을 권장합니다:

  • GitHub Pull Requests and Issues GUI 기반 Pull Request 처리와 Issue 관리를 가능하게 합니다.
  • GitLens 줄 단위 이력을 시각화하여 누가 무엇을 언제 변경했는지 보여줍니다.

VS Code에서의 기본 Git 작업

저장소 열기

복제한 저장소로 이동하여 실행하세요:

code .

변경 사항 검토 및 커밋

  • 왼쪽 사이드바의 Source Control 아이콘 클릭
  • 수정된 파일 목록 보기
  • diff를 보려면 파일 선택
  • 커밋 메시지 입력하고 ✓ 아이콘 클릭

푸시 및 풀 작업

  • “…” 메뉴에서 “Push” 또는 “Pull” 선택
  • 또는 오른쪽 하단 상태 표시줄 사용

통합 터미널 사용

내장 터미널(Ctrl + `)은 GUI와 CLI 워크플로우 간의 원활한 전환을 허용합니다. 예를 들어, GUI를 통해 커밋하고 터미널을 통해 브랜치 관리할 수 있습니다.

문제 해결 팁

  • SSH 오류가 발생하면 VS Code가 올바른 SSH 키를 참조하는지 확인하세요
  • 인증을 다시 구성하거나 GitHub Personal Access Token (PAT)을 사용해야 할 수 있습니다

6. 일반적인 문제 해결

SSH 오류: “Permission denied (publickey).”

가능한 원인

  • SSH 키가 올바르게 생성되지 않음
  • 공개 키가 GitHub에 등록되지 않음
  • SSH 에이전트가 키를 로드하지 않음

해결 방법

  1. 기존 SSH 키 확인:
    ls ~/.ssh/id_ed25519.pub
    

존재하지 않으면 생성:

ssh-keygen -t ed25519 -C "your_email@example.com"
  1. SSH 에이전트 시작하고 키 추가:
    eval "$(ssh-agent -s)"
    ssh-add ~/.ssh/id_ed25519
    
  1. 공개 키를 GitHub에 추가:
    cat ~/.ssh/id_ed25519.pub
    

GitHub의 “SSH and GPG keys” 아래에 추가하세요.

  1. 연결 테스트:
    ssh -T git@github.com
    

HTTPS 인증 오류

원인

  • 비밀번호 인증이 더 이상 사용되지 않음; 토큰 기반 인증이 필요함

해결 방법

  1. GitHub에서 Personal Access Token 생성 https://github.com/settings/tokens 토큰 생성 시 repo 범위 확인
  2. GitHub 사용자 이름과 토큰 문자열을 비밀번호로 사용
  3. 원할 경우 자격 증명 캐싱 활성화:
    git config --global credential.helper cache
    

오류: “fatal: not a git repository”

원인

  • 현재 디렉토리가 Git 저장소가 아님

해결 방법

  • 기존 저장소 디렉토리로 이동:
    cd ~/your-project-directory
    
  • 또는 새 저장소 초기화:
    git init
    

병합 충돌 처리

원인

  • 여러 사용자가 동시에 파일의 동일한 섹션을 편집할 때 충돌 발생

해결 방법

  1. git pull 오류 후 충돌 파일 열기
  2. 충돌 마커 찾기:
    <<<<<<< HEAD
    Your changes
    =======
    Other changes
    >>>>>>> origin/main
    
  1. 내용 편집, 마커 제거, 저장
  2. 그런 다음 실행:
    git add .
    git commit
    

오류: “remote: Repository not found.”

원인

  • 잘못된 저장소 URL
  • 저장소에 대한 액세스 권한 없음

해결 방법

  • 원격 URL 확인:
    git remote -v
    
  • 필요 시 URL 재설정:
    git remote set-url origin git@github.com:your-username/your-repo.git
    

이 문제들은 초보자에게 흔히 발생합니다. 그러나 명확한 원인과 해결책이 있으므로 침착하게 해결할 수 있습니다. 오류를 학습 기회로 여기고 점차 자신감을 쌓아가세요.

7. FAQ

Q1. Git과 GitHub의 차이점은 무엇인가요?

A:
Git은 변경 이력을 로컬에서 관리하는 버전 제어 도구입니다. GitHub는 Git 저장소를 호스팅하고 공유 및 협업을 가능하게 하는 클라우드 서비스입니다.

  • Git: 로컬 및 오프라인 이력 관리
  • GitHub: 온라인 저장소 호스팅 및 협업

Q2. SSH와 HTTPS 중 어떤 것을 사용해야 하나요?

A:
SSH를 권장합니다. 이유는 다음과 같습니다:

  • 반복적인 비밀번호 입력이 필요 없음
  • 장기적으로 더 안전하고 편리함

그러나 특정 기업이나 네트워크 환경에서는 HTTPS가 필요할 수 있습니다.

Q3. Ubuntu에서 여러 GitHub 계정을 사용할 수 있나요?

A:
각 계정에 대해 별도의 SSH 키를 생성하고 명시적으로 구성하세요.

  1. 별도의 SSH 키 생성 예: ~/.ssh/id_ed25519_work , ~/.ssh/id_ed25519_personal
  2. ~/.ssh/config 편집:
    Host github.com-work
        HostName github.com
        User git
        IdentityFile ~/.ssh/id_ed25519_work
    
    Host github.com-personal
        HostName github.com
        User git
        IdentityFile ~/.ssh/id_ed25519_personal
    
  1. 원격 URL 업데이트:
    git remote set-url origin git@github.com-work:your-work-user/your-repo.git
    

Q4. GUI로 Git을 사용할 수 있나요?

A:
네. Visual Studio Code는 커밋, 푸시, diff, 브랜치 관리 등을 포함한 GUI 기반 Git 작업을 제공합니다. 초보자에게 매우 권장합니다.

Q5. 원격 저장소를 삭제하면 어떻게 되나요?

A:
원격 저장소를 삭제해도 로컬 저장소에는 영향을 주지 않습니다. 그러나 git push는 실패합니다.

새 원격에 다시 연결하려면 다음과 같이 하세요:

git remote set-url origin git@github.com:new-user/new-repo.git

Q6. 터미널을 완전히 피할 수 있나요?

A:
네. GUI Git 클라이언트는 터미널 없이 작업할 수 있게 합니다:

  • GitKraken
  • Sourcetree (Linux에서 공식 지원되지 않음)
  • Visual Studio Code (내장 Git 지원)

Ubuntu 사용자에게는 VS Code + GitLens 조합이 가장 실용적이고 사용자 친화적입니다.

Q7. Git 이력은 얼마나 거슬러 올라갈 수 있나요?

A:
Git은 최초 커밋부터 모든 이력을 보존합니다. 다음 명령으로 확인할 수 있습니다:

git log

특정 파일의 이력을 확인하려면:

git log path/to/file