[초보자용] Ubuntu에서 GitHub 사용법 | 설치·SSH 설정·원격 작업 완전 가이드

目次

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: Version Control System)입니다. 개발 중인 소스 코드의 변경 이력을 관리하고, 과거 상태로 복원하거나, 여러 사람이 동시에 작업할 수 있게 합니다. Ubuntu와 같은 Linux 환경에서는 Git 설치가 매우 간단하게 이루어지는 점도 큰 매력입니다. 앞으로 소개할 방법을 사용하면 터미널을 통해 몇 분 안에 설치를 완료할 수 있습니다.

Git 설치 절차 (APT 경유)

Ubuntu에 Git을 설치하려면 APT(Advanced Package Tool)를 사용하는 것이 일반적입니다. 아래 절차대로 진행합시다.

1. 패키지 목록을 최신으로 업데이트한다

sudo apt update
이 명령을 통해 시스템이 최신 패키지 정보를 가져옵니다. 설치 전에 반드시 실행해 두세요.

2. Git을 설치한다

sudo apt install git
‘Y/n’으로 설치 확인이 표시되면 ‘y’를 입력하고 Enter를 누르면 Git 설치가 시작됩니다.

Git 설치 확인

설치가 완료되면, 아래 명령으로 올바르게 설치되었는지 확인합시다.
git --version
예를 들어, 아래와 같이 표시되면 OK입니다:
git version 2.34.1
버전 번호는 Ubuntu 버전이나 패키지 상황에 따라 다를 수 있지만, 버전 정보가 반환되면 설치 성공입니다.

Snap 패키지를 통한 설치 (보충)

Ubuntu에서는 snap 명령을 사용해 Git을 설치하는 것도 가능하지만, APT가 더 일반적이고 안정적입니다. 특별한 이유가 없으면 APT 설치를 권장합니다.

3. Git 초기 설정

Git를 사용하기 전에 해야 할 기본 설정은?

Git 설치가 완료되면, 다음에 해야 할 것은사용자 정보와 인증 방법 설정입니다. 이 설정을 하면 원격 저장소와의 교류 및 팀 개발이 원활하게 진행됩니다.

Git 사용자 이름과 이메일 주소 설정하기

Git에서는 커밋(변경 기록)마다 “누가 수행했는지”라는 정보를 기록합니다. 이를 위해 사용자 이름과 이메일 주소를 미리 설정해 두어야 합니다.

설정 명령

git config --global user.name "당신의 이름"
git config --global user.email "you@example.com"

설정 내용 확인

git config --list
이 명령을 사용하면 현재 설정 상태를 목록으로 확인할 수 있습니다.

SSH 키 생성 및 GitHub에 등록

HTTPS 연결도 가능하지만, SSH 연결을 설정하면 매번 비밀번호 입력을 생략할 수 있어 보다 안전하고 효율적인 운영이 가능합니다.

1. SSH 키 생성하기

ssh-keygen -t ed25519 -C "you@example.com"
표시되는 지시에 따라 Enter를 몇 번 누르면 ~/.ssh/id_ed25519 라는 비밀키와, ~/.ssh/id_ed25519.pub 라는 공개키 쌍이 생성됩니다.

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

-agent -s)"
ssh-add ~/.ssh/id_ed25519
이제 키 준비가 완료되었습니다.

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에 로그인하면, 먼저 새 리포지토리를 만들어 봅시다.

생성 절차 (Web 브라우저 상)

  1. GitHub 메인 페이지 오른쪽 상단의 “+” 버튼에서 “New repository”를 클릭
  2. 다음 정보를 입력:
  • Repository name (리포지토리 이름):예)my-first-repo
  • Description (선택):간단한 설명
  • Public / Private:공개·비공개 선택
  1. “Create repository”를 클릭
생성 후, 리포지토리 URL이 표시됩니다. 이를 사용해 클론 등의 작업을 수행합니다.

기존 GitHub 리포지토리 클론하기

생성한 리포지토리를 로컬(Ubuntu 환경)로 복제하려면 git clone 명령을 사용합니다。
git clone git@github.com:your-username/my-first-repo.git
※ SSH 연결을 사용하는 경우의 예시입니다. HTTPS인 경우 URL이 다릅니다。 명령을 실행하면 현재 디렉터리 안에 my-first-repo라는 폴더가 생성되고, 그 안에 리포지토리 내용이 다운로드됩니다。

파일 변경·스테이징·커밋 흐름

1. 파일 추가·편집하기

예를 들어, 새 파일을 만들기:
echo "# GitHub 처음" > README.md

2. 변경 내용을 스테이징하기

git add README.md
스테이징은 “다음 커밋에 포함할 변경”을 선택하는 작업입니다。

3. 변경을 커밋하기

git commit -m "첫 커밋: 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 상에서 커밋이나 푸시, 차이 확인이 가능하기 때문에 초보자에게도 친절한 도구가 됩니다.

VS Code 설치 방법(Ubuntu)

Ubuntu에서는 아래 절차대로 VS Code를 간단히 설치할 수 있습니다.

1. Microsoft 저장소 추가

sudo apt update
sudo apt install wget gpg
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg -- 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 를 입력하여 에디터를 실행할 수 있습니다.

Git 확장 기능은 탑재

VS Code는 설치 직후부터 Git과의 연동 기능을 탑재하고 있기 때문에, 특별한 플러그인을 도입하지 않아도 Git 작업이 가능합니다. 다만, 더 편리하게 사용하고 싶다면 아래의 확장.
  • GitHub Pull Requests and Issues → GitHub와의 연동이 강화되어, Pull Request 작업 및 Issue 관리가 GUI에서 가능해집니다.
  • GitLens → 각 행의 변경 이력을 시각화하여, 누가 언제 어떻게 변경했는지를 시각적으로 확인할 수 있습니다.
 

리포지토리 불러오기

터미널에서 클론된 프로젝트 디렉터리로 이동한 뒤, 아래를 실행합니다:
code .
이렇게 하면 VS Code가 해당 리포지토리를 불러옵니다.

변경 확인 및 커밋

  • 사이드바 왼쪽의 ‘소스 관리’ 아이콘(분기된 모양)을 클릭
  • 변경된 파일 목록이 표시된다
  • 파일을 선택하면 차이를 확인할 수 있다
  • 커밋 메시지를 입력하고, ‘✓’ 아이콘으로 커밋

푸시·풀 작업

  • 사이드바의 ‘…’에서 ‘Push’나 ‘Pull’을 선택
  • 또는 오른쪽 하단의 상태 표시줄에서 작업

터미널과의 병행 사용도 가능

VS Code 내장 터미널(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/tokensrepo에 체크하고 생성
  2. Git 인증 시, 사용자명은 GitHub 계정명, 비밀번호는 발행한 토큰 문자열을 사용
  3. 인증 정보를 기억하도록 하려면, 아래 명령으로 캐시를 활성화:
   git config --global credential.helper cache

“fatal: not a git repository” 오류

원인

  • git 명령을 실행하고 있는 디렉터리가 Git 저장소가 아님

해결 방법

  • 클론된 저장소 안으로 이동한 뒤 작업 수행:
  cd ~/your-project-directory
  • 또는 새로 저장소 초기화:
  git init

충돌(Conflict) 발생 시

원인

  • 본인과 다른 사람이 같은 파일의 같은 부분을 동시에 편집한 경우, 병합 시 충돌이 발생합니다

해결 방법

  1. git pull 실행 시 오류가 발생하면 해당 파일을 편집기로 열기
  2. 다음과 같은 표시가 나타남:
   <<<<<<< HEAD
   본인 변경
   =======
   다른 사람의 변경
   >>>>>>> origin/main
  1. 둘 중 하나 또는 양쪽 내용을 남기고, 표시를 삭제한 뒤 저장
  2. 그 후, 아래를 실행:
   git add .
   git commit

“remote: Repository not found.” 오류

원인

  • 저장소 URL이 잘못됨
  • 본인의 GitHub 계정에 해당 저장소에 대한 접근 권한이 없음

해결 방법

  • 원격 URL 확인:
  git remote -v
  • 수정이 필요하면 재설정:
  git remote set-url origin git@github.com:your-username/your-repo.git
이러한 문제들은 초보자가 처음에 가장 많이 겪는 포인트입니다. 하지만 원인과 해결책이 명확하면 침착하게 대처할 수 있습니다. 오류는 성장의 기회라고 생각하고, 조금씩 작업에 익숙해지세요.

7. FAQ(자주 묻는 질문)

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

A: Git은 로컬에서 소스 코드의 변경 이력을 관리하기 위한버전 관리 도구입니다. 한편, GitHub는 그 Git 저장소를인터넷 상에서 공유·관리할 수 있는 서비스입니다.
  • Git:오프라인에서 이력 관리가 가능
  • GitHub:Git 이력을 클라우드에 저장하고, 다른 사람과 공유할 수 있는 플랫폼

Q2. SSH 연결과 HTTPS 연결, 어느 것을 사용해야 하나요?

A: 기본적으로는SSH 연결을 권장합니다. 이유는 다음과 같습니다:
  • 매번 비밀번호 입력이 필요 없음(SSH 키에 의한 인증)
  • 보다 안전하고, 장기적으로 사용하기 쉬움
다만, 회사나 네트워크 환경에 따라 HTTPS가 필수인 경우도 있으므로, 상황에 맞게 사용을 구분합시다.

Q3. 여러 GitHub 계정을 Ubuntu에서 구분해서 사용하려면?

A: SSH 키를 계정별로 생성하고, 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. .git/config 또는 git remote set-url 로 원격 URL을 변경:
   git remote set-url origin git@github.com-work:your-work-user/your-repo.git

Q4. Git 작업을 GUI로 하고 싶은데, 가능한가요?

A: 네, Visual Studio Code를 사용하면 GUI로 Git 작업이 가능합니다. 커밋, 푸시, 차이 확인, 브랜치 전환 등도시각적으로 이해하기 쉽게 작업할 수 있습니다. 초보자에게 특히 추천하는 방법입니다.

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

A: GitHub상의 원격 저장소를 삭제해도, 로컬 저장소는 그대로 남습니다. 다만, git push 를 해도 오류가 발생합니다. 로컬을 유지하면서, 새로운 원격에 연결하려면 다음과 같이 URL을 재설정합니다:
git remote set-url origin git@github.com:new-user/new-repo.git

Q6. 터미널 조작이 서툽니다. GUI만으로 끝내는 방법은?

A: 다음과 같은 GUI 클라이언트를 사용하면 터미널 없이 작업이 가능합니다.
  • GitKraken
  • Sourcetree(Linux 미지원、Wine을 통해 일부 동작)
  • Visual Studio Code(Git 통합)
Ubuntu 사용자에게는, 역시VS Code+GitLens 확장 기능의 조합이 가장 도입하기 쉽고, 사용성도 뛰어납니다.

Q7. Git의 이력은 어디까지 거슬러 올라갈 수 있나요?

A: Git은 원칙적으로,첫 번째 커밋(초기화)부터 모든 이력을 보유합니다. 다음 명령으로 이력을 거슬러 확인할 수 있습니다:
git log
특정 파일에 관한 이력만 보고 싶을 경우:
git log path/to/file