Git 서버 설치

GitBeginner
지금 연습하기

소개

Git 은 프로젝트 버전을 효율적으로 관리하는 데 필수적인 강력한 오픈 소스 분산 버전 관리 시스템입니다. 자체 Git 서버를 설정하면 Git 의 내부 메커니즘에 대한 이해를 높일 뿐만 아니라 개인 프로젝트 관리를 위한 안전한 환경을 제공합니다. 이 실습에서는 Linux 시스템에 Git 서버를 설정하는 과정을 안내합니다. GitHub 와 같은 코드를 호스팅하는 플랫폼이 있지만, 개인 Git 서버는 데이터가 귀하의 통제 하에 안전하게 유지되도록 보장합니다.

🎯 과제

이 프로젝트에서는 다음을 배우게 됩니다.

  • Linux 시스템에 Git 을 설치하고 구성하는 방법
  • Git 작업을 위해 특별히 사용자를 생성하고 관리하는 방법
  • 로컬 머신과 Git 서버 간의 연결을 보호하기 위해 SSH 키를 생성하고 구성하는 방법
  • 로컬 및 서버에서 Git 저장소를 초기화하고 관리하는 방법
  • 변경 사항을 커밋하고 원격 저장소로 푸시하는 것과 같은 버전 관리 작업을 수행하는 방법
  • 저장소를 복제하여 모든 것이 올바르게 작동하는지 확인하여 설정을 검증하는 방법

🏆 성과

이 프로젝트를 완료하면 다음을 할 수 있습니다.

  • Linux 환경에서 분산 버전 관리 시스템인 Git 을 설치하고 설정하는 기본 사항 이해
  • 애플리케이션별 작업을 위해 Unix/Linux 시스템에서 사용자 권한 및 보안 처리
  • 원격 서버 관리의 필수 기술인 SSH 키를 사용하여 머신 간의 안전한 통신을 위한 기술 활용
  • Git 작업에서 서버 측 저장소에 사용되는 bare Git 저장소 생성 및 관리
  • Git 명령을 사용하여 프로젝트를 커밋하고 버전 관리하며 이러한 변경 사항을 원격 서버로 푸시
  • 복제 및 데이터 무결성 검사를 통해 원격 저장소 관리의 일반적인 문제를 검증하고 해결
이것은 가이드 실험입니다. 학습과 실습을 돕기 위한 단계별 지침을 제공합니다.각 단계를 완료하고 실무 경험을 쌓기 위해 지침을 주의 깊게 따르세요. 과거 데이터에 따르면, 이것은 초급 레벨의 실험이며 완료율은 86%입니다.학습자들로부터 96%의 긍정적인 리뷰율을 받았습니다.

Git 설치

이 단계에서는 로컬 및 원격 서버 역할을 모두 수행할 머신에 Git 을 설치합니다. 이 연습을 통해 개인 컴퓨터에 Git 서버를 설정하여 로컬 네트워크 호스팅을 준비할 수 있습니다.

## 최신 소프트웨어 목록을 사용하고 있는지 확인하기 위해 apt 패키지 데이터베이스 업데이트
sudo apt-get update

## apt-get을 사용하여 Git 설치
sudo apt-get install git

이 명령은 패키지 목록을 업데이트하여 후속 설치가 최신 상태인지 확인한 다음, 저장소를 관리할 버전 관리 시스템인 Git 을 설치합니다.

✨ 솔루션 확인 및 연습

Git 사용자 설정

관리를 용이하게 하기 위해 Git 작업을 위한 새 사용자를 생성하고 작업 디렉토리를 설정합니다.

## Git 작업을 위한 새 사용자 생성
sudo useradd labex-git
sudo passwd labex-git

Git 사용자에게 암호를 설정합니다 ("labex"와 같은 암호). 암호를 두 번 입력해야 합니다.

다음으로 Git 사용자를 위한 작업 디렉토리를 생성하고 소유권을 할당합니다.

sudo mkdir /home/labex-git
sudo chown -R labex-git:labex-git /home/labex-git

이 일련의 명령은 새 사용자를 생성하고, 암호를 설정하며, Git 작업을 위한 전용 작업 디렉토리를 설정하여 저장소 관리가 다른 시스템 활동과 격리되도록 합니다.

✨ 솔루션 확인 및 연습

SSH 키 생성

SSH 키를 사용하면 모든 작업 시 사용자 자격 증명을 입력할 필요가 없어 Git 작업이 간소화됩니다. SSH 키 쌍을 생성하고 설정해 보겠습니다.

## SSH 키 쌍 생성
ssh-keygen -t rsa -C "labex@labex.io"

기본 설정을 사용하려면 모든 프롬프트에서 Enter 키를 누릅니다. 그런 다음 공개 키를 Git 사용자의 머신으로 보냅니다.

cat ~/.ssh/id_rsa.pub | ssh labex-git@localhost 'mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys'

여기서 "yes"를 입력하고 이전에 설정한 암호를 입력해야 합니다.

이 단계는 SSH 키 쌍을 생성하여 로컬 및 원격 설정 간의 연결을 보호합니다. 그런 다음 공개 키를 Git 서버의 승인된 목록에 추가하여 각 작업에 암호가 필요 없는 안전한 통신을 가능하게 합니다.

✨ 솔루션 확인 및 연습

원격 저장소 생성

이제 Git 사용자로 전환하여 서버 측 저장소에 적합한 bare Git 저장소를 설정합니다.

## Git 사용자로 전환
su labex-git

설정한 암호를 입력합니다.

이제 저장소 폴더를 생성하고 bare 저장소를 초기화할 수 있습니다.

mkdir -p /home/labex-git/project.git
cd /home/labex-git/project.git
git init --bare

이 명령 시퀀스는 현재 사용자를 Git 사용자로 전환하고, 저장소에 대한 새 디렉토리를 생성하며, bare 저장소를 초기화합니다. 이 설정은 Git 서버가 작업 복사본을 유지하지 않고 수신된 모든 데이터를 저장하므로 푸시 및 풀 작업에 이상적입니다.

✨ 솔루션 확인 및 연습

로컬 저장소 설정

이 단계에서는 사용자 머신에 로컬 저장소를 설정합니다. 이 과정은 일반적으로 코드 호스팅 플랫폼에서 수행하는 작업과 유사합니다.

먼저 Git 사용자에서 일반 사용자로 다시 전환합니다.

## Git 사용자에서 나가기
exit

이제 프로젝트 디렉토리를 생성하고 Git 저장소를 초기화합니다.

## 프로젝트 디렉토리 생성
mkdir -p /home/labex/project/labex_project
cd /home/labex/project/labex_project

## Git 저장소 초기화
git init

이 명령은 지정된 디렉토리에 새 Git 저장소를 설정하며, 이는 프로젝트의 로컬 저장소 역할을 합니다.

Git 사용자 세부 정보를 구성합니다.

## Git 사용자 이름 설정
git config --global user.name "labex"

## Git 이메일 설정
git config --global user.email "labex@labex.io"

이 단계는 모든 커밋이 사용자 이름과 이메일로 기록되도록 하여 변경 사항 추적을 용이하게 합니다.

커밋 프로세스를 테스트할 파일을 생성합니다.

## 테스트 문서 생성
echo "I am Labex Readme Doc" > readme.md

이 명령은 샘플 메시지가 포함된 readme.md 라는 간단한 텍스트 파일을 생성하며, 이 파일은 원격 저장소로 커밋하고 푸시하는 프로세스를 테스트하는 데 사용됩니다.

✨ 솔루션 확인 및 연습

변경사항 커밋 및 푸시

저장소를 초기화하고 Git 구성을 설정했으므로 이제 첫 변경 사항을 커밋하고 푸시할 차례입니다.

## 모든 변경 사항을 스테이징 영역에 추가
git add .

## 변경 사항 커밋
git commit -m "Initial commit"

## 원격 저장소 추가
git remote add origin labex-git@localhost:/home/labex-git/project.git

이제 변경 사항을 원격 저장소로 푸시할 수 있습니다.

git push origin master
✨ 솔루션 확인 및 연습

설정 확인

마지막으로, 커밋이 원격 서버에 올바르게 호스팅되었는지 확인하기 위해 저장소를 클론합니다.

## 클론할 디렉토리로 이동
cd /home/labex/project

## 저장소 클론
git clone labex-git@localhost:/home/labex-git/project.git

/home/labex/project 경로에 새 저장소가 클론되었으며, 그 안에 readme.md 파일이 있는 것을 확인할 수 있습니다.

✨ 솔루션 확인 및 연습

요약

이 실습에서는 Linux 시스템에 Git 서버를 설정하고 구성하는 방법, SSH 키를 관리하는 방법, 저장소를 초기화하고 변경 사항을 커밋하고 원격 서버로 푸시하는 것과 같은 일반적인 Git 작업을 수행하는 방법을 배웠습니다. 이 연습은 Git 서버 설정 및 사용의 전체 수명 주기를 보여주며, 자체 코드 저장소를 안전하게 관리하는 데 대한 견고한 기반을 제공했습니다. 여기서 습득한 기술은 소프트웨어 개발에 필수적일 뿐만 아니라 개인적이고 안전한 환경에서 프로젝트 버전 관리에 대한 이해를 향상시킵니다.