소개
Git 은 프로젝트 버전을 효율적으로 관리하는 데 필수적인 강력한 오픈 소스 분산 버전 관리 시스템입니다. 자체 Git 서버를 설정하면 Git 의 내부 메커니즘에 대한 이해를 높일 뿐만 아니라 개인 프로젝트 관리를 위한 안전한 환경을 제공합니다. 이 실습에서는 Linux 시스템에 Git 서버를 설정하는 과정을 안내합니다. GitHub 와 같은 코드를 호스팅하는 플랫폼이 있지만, 개인 Git 서버는 데이터가 귀하의 통제 하에 안전하게 유지되도록 보장합니다.
🎯 과제
이 프로젝트에서는 다음을 배우게 됩니다.
- Linux 시스템에 Git 을 설치하고 구성하는 방법
- Git 작업을 위해 특별히 사용자를 생성하고 관리하는 방법
- 로컬 머신과 Git 서버 간의 연결을 보호하기 위해 SSH 키를 생성하고 구성하는 방법
- 로컬 및 서버에서 Git 저장소를 초기화하고 관리하는 방법
- 변경 사항을 커밋하고 원격 저장소로 푸시하는 것과 같은 버전 관리 작업을 수행하는 방법
- 저장소를 복제하여 모든 것이 올바르게 작동하는지 확인하여 설정을 검증하는 방법
🏆 성과
이 프로젝트를 완료하면 다음을 할 수 있습니다.
- Linux 환경에서 분산 버전 관리 시스템인 Git 을 설치하고 설정하는 기본 사항 이해
- 애플리케이션별 작업을 위해 Unix/Linux 시스템에서 사용자 권한 및 보안 처리
- 원격 서버 관리의 필수 기술인 SSH 키를 사용하여 머신 간의 안전한 통신을 위한 기술 활용
- Git 작업에서 서버 측 저장소에 사용되는 bare Git 저장소 생성 및 관리
- Git 명령을 사용하여 프로젝트를 커밋하고 버전 관리하며 이러한 변경 사항을 원격 서버로 푸시
- 복제 및 데이터 무결성 검사를 통해 원격 저장소 관리의 일반적인 문제를 검증하고 해결
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 서버 설정 및 사용의 전체 수명 주기를 보여주며, 자체 코드 저장소를 안전하게 관리하는 데 대한 견고한 기반을 제공했습니다. 여기서 습득한 기술은 소프트웨어 개발에 필수적일 뿐만 아니라 개인적이고 안전한 환경에서 프로젝트 버전 관리에 대한 이해를 향상시킵니다.



