Linux에서 Git 사용

Linux에서 Git을 시작하는 초보자 가이드에 오신 것을 환영합니다. 이 가이드는 Git과 GitLab의 기본 사용법을 설명합니다.

Git 개요

애플리케이션을 만드는 데 사용되는 코드는 시스템의 폴더와 파일 모음으로 저장됩니다. Git은 그 모음을 백업, 공유, 복제할 수 있게 해 주는 애플리케이션입니다. Git은 코드 변경을 추적하고 다른 사람과 협업할 수 있는 버전 관리 시스템입니다. 오픈 소스 커뮤니티에서 널리 쓰이는 강력한 도구입니다. GitLab은 Git 저장소를 온라인에서 호스팅하고 관리할 수 있는 웹 기반 플랫폼으로, 협업과 변경 추적을 쉽게 합니다.

저장소란?

repo(저장소의 약자)는 온라인 사본을 가진 Git 관리 로컬 폴더입니다. GitLab 저장소는 프로젝트를 구성하는 파일과 폴더 모음입니다. 같은 프로젝트의 독립적인 사본인 _브랜치_를 가질 수 있습니다. 브랜치는 메인 버전에 영향을 주지 않고 변경할 수 있는 프로젝트의 별도 버전입니다. 메인 프로젝트를 중단하지 않고 새 기능을 테스트하거나 버그를 수정할 때 유용합니다. 하드 드라이브에 있는 로컬 저장소와 Git 및 GitLab으로 온라인에 저장되는 원격 저장소가 있습니다.

Git 사용하기

시스템에 Git을 설치해야 합니다. Debian 기반 시스템에서는 apt 명령으로 소프트웨어 패키지를 설치할 수 있습니다. 여기서는 Git 버전 관리 시스템을 제공하는 Git 패키지를 설치합니다. sudo 명령은 설치 프로그램이 시스템에 설치할 권한을 부여합니다.

 sudo apt install git

GitLab 접근

GitLab을 사용하기 전에 GitLab 웹사이트에서 계정을 만들고 등록을 완료해야 합니다.

GitLab은 저장소 clone, push, fetch 같은 Git 작업에서 클라이언트(사용자)와 GitLab 서버 간의 안전하고 인증된 통신을 위해 _SSH_가 필요합니다. clone은 저장소의 로컬 사본을 만들고, fetch는 원격 변경을 로컬로 가져오며, push는 변경을 서버 저장소로 보냅니다. SSH(Secure Shell)는 보안 원격 액세스를 허용하고 _키 쌍_으로 인증해 안전한 연결을 만드는 네트워크 프로토콜입니다. SSH 키 쌍은 터미널에서 ssh-keygen 명령으로 생성할 수 있습니다.

 ssh-keygen

파일 이름을 지정하거나 Enter로 기본값을 사용하고, 필요하면 비밀번호를 설정합니다. 기본 이름을 사용했다면 홈 디렉터리의 숨김 폴더 .ssh에 id_rsa 파일 두 개가 생깁니다. .pub 파일이 공개 키이며 텍스트 편집기로 내용을 볼 수 있습니다.

GitLab 계정에 로그인하고 사용자 설정으로 이동합니다. 왼쪽 탐색 메뉴에서 ‘SSH Keys’를 클릭합니다. 공개 키를 복사해 Key 필드에 붙여넣고 PC@Home 같은 알아보기 쉬운 제목을 지정합니다. ‘Add Key’ 버튼을 클릭해 저장합니다. SSH 공개 키가 GitLab 계정에 추가되어 GitLab 저장소 인증에 사용할 수 있습니다. ssh -T 명령으로 키와 연결이 작동하는지 테스트하고 GitLab의 환영 메시지를 확인하세요.

 $ ssh -T git@ssh.gitlab.gnome.org
 Welcome to GitLab, @username!

기본 Git 명령

Git을 설치하고 GitLab에 SSH 키를 설정했다면, 저장소 관리에 필요한 기본 Git 명령을 살펴보겠습니다. 이 명령들은 기존 프로젝트를 최신 상태로 유지하고 안전하게 변경하는 데 도움이 됩니다.

1. 저장소 clone

clone은 원격 저장소의 로컬 사본을 만드는 과정입니다. GitLab에 이미 있는 프로젝트를 작업할 때 유용합니다. 저장소를 clone하려면 git clone 뒤에 저장소 URL을 사용하세요:

git clone https://gitlab.com/username/repository.git

https://gitlab.com/username/repository.git을 clone하려는 저장소 URL로 바꾸세요. 이 명령은 새 디렉터리에 저장소의 로컬 사본을 만듭니다.

2. 저장소 상태 확인

로컬 저장소에 변경이 있는지, 현재 상태를 보려면:

git status

이 명령은 저장소 로컬 사본에서 수정, 추가, 삭제된 파일을 보여 줍니다.

3. 원격 저장소

원격 저장소는 GitLab처럼 온라인에 호스팅된 프로젝트 버전입니다. 코드가 저장되고 다른 사람이 접근할 수 있는 중앙 위치 역할을 합니다. 프로젝트를 clone할 때 Git이 만드는 기본 원격 저장소는 origin입니다. 다음 명령으로 원격 저장소를 추가, 제거, 나열할 수 있습니다:

  • 원격 나열:

    로컬 프로젝트에 연결된 원격 저장소를 확인하려면:

    git remote -v

    이 명령은 모든 원격과 URL을 나열합니다. 보통 여기에 origin이 표시됩니다.

  • 원격 추가:

    새 원격 저장소를 추가하려면:

    git remote add <name> <url>

    <name>을 원격 이름으로, <url>을 저장소 URL로 바꾸세요.

  • 원격 제거:

    원격 저장소를 제거하려면:

    git remote remove <name>

    <name>을 제거할 원격 이름으로 바꾸세요.

4. 원격 저장소에서 변경 가져오기

로컬 사본에 적용하지 않고 원격 저장소의 변경을 확인하려면:

git fetch origin

이 명령은 원격 저장소에서 최신 변경을 가져오지만 로컬 브랜치에는 병합하지 않습니다. 반영하기 전에 업데이트를 확인하는 방법입니다.

5. 로컬 저장소 재설정

로컬 저장소를 원격과 정확히 일치시키려면 하드 재설정을 사용할 수 있습니다. 경고: 로컬 변경이 모두 덮어씌워집니다.

git reset --hard origin/branch-name

branch-name을 재설정할 브랜치 이름으로 바꾸세요. 이 명령은 로컬 변경을 버리고 로컬 저장소를 원격과 동일하게 만듭니다.

6. 커밋 기록 보기

저장소에 대한 변경 목록을 시간순으로 보려면:

git log

이 명령은 각 변경의 작성자, 날짜, 메시지를 포함한 커밋 기록을 표시합니다. 어떤 변경이 언제 이루어졌는지 파악하는 데 유용합니다.

요약

이 기본 Git 명령들은 저장소 작업, 로컬 사본 업데이트, 원격 저장소의 안전한 관리에 도움이 됩니다. clone, 상태 확인, 원격 관리는 Git으로 프로젝트를 다루는 핵심 기술입니다.