초보자를 위한 Git 가이드

Git은 훌륭한 프로그램입니다. 파일의 편집 이력을 원활하게 관리할 수 있는 버전 관리 유틸리티입니다. 이것은 간단하고 인상적이지 않은 것처럼 보일 수 있지만, Git의 강점은 이 이력을 전체 파일 및 디렉토리 그룹으로 확장할 수 있다는 사실에 있습니다.
이는 Git을 사용하여 모든 디렉토리의 모든 파일에서 모든 변경 사항을 추적할 수 있음을 의미합니다. 이는 진행 중인 프로젝트에서 당신이 하고 있는 모든 것의 롤링 스냅샷을 갖고 싶을 때 매우 유용합니다.
목차
- Git이란?
- Git 설치하기
- 로컬 프로젝트에 Git 사용하기
- 온라인 프로젝트에 Git 사용하기
- 자주 묻는 질문
또한 읽어보세요: 웹사이트가 합법적이고 안전한지 확인하는 방법
Git이란?
Git은 본질적으로 간단한 이력 추적 프로그램입니다. 그것은 파일의 다양한 버전 간의 변경 사항을 추적합니다. 작동 방식은 파일을 변경할 때마다 Git이 해당 특정 파일 버전에 대한 해시를 생성하는 것입니다.
그 후, Git은 이러한 해시를 저장소의 “Git 트리”와 비교하고 분석합니다. 이렇게 하면 Git은 여러 파일 버전 간의 차이만 저장할 수 있습니다.

예를 들어, Git 아래에서 스크립트를 작성하고 몇 가지 변경을 했다면, Git은 처음 두 변경의 해시만 저장하고 현재 파일을 처음 두 변경과 해시합니다. 그렇게 하면 Git은 동일한 파일의 여러 복사본을 저장하지 않고도 이전 버전을 재구성할 수 있습니다.

이 접근 방식은 파일과 디렉토리를 더 큰 프로젝트로 쉽게 확장할 수 있게 해줍니다. Git은 모든 역사적 데이터를 해시로 저장하므로 로컬 머신에서만 작동하면 됩니다. 따라서 외부 관리 소프트웨어 없이도 작업을 다른 사람에게 쉽게 내보내고 그들의 기여를 가져올 수 있습니다.
Git 설치하기
Git은 리눅스 기반 운영 체제에서 매우 일반적인 패키지입니다. 그렇기 때문에 설치가 매우 쉽습니다. 대부분의 경우, 시스템에 이미 사전 설치되어 있습니다. Debian 또는 Ubuntu를 사용하는 경우, apt를 사용하여 Git을 설치할 수 있습니다:
sudo apt install git
Fedora 또는 RHEL의 경우, dnf를 사용하세요:
sudo dnf install git-all한편, Arch Linux를 사용하는 경우 pacman을 사용하여 Git을 설치할 수 있습니다:
sudo pacman -S git로컬 프로젝트에 Git 사용하기
로컬 머신에서 Git을 사용하는 것은 매우 간단합니다. 가장 먼저 해야 할 일은 새로운 Git 저장소를 만드는 것입니다. 그 주된 목적은 이 프로젝트를 위해 추가할 모든 Git 객체의 컨테이너 역할을 하는 것입니다.
추적하려는 폴더에서 다음 명령을 실행하세요:
cd my-project
git init
완료되면 Git은 프로젝트 디렉토리의 루트에 “.git” 폴더를 생성합니다. 이는 Git 프로그램의 마커 역할과 해당 프로젝트의 모든 Git 객체를 저장하는 폴더 역할을 합니다.
기존 파일을 저장소에 추가하기
작동하는 Git 저장소가 생겼다면, 다음으로 해야 할 일은 Git에 기존 파일을 가져오는 것입니다. 이는 Git이 새로운 저장소를 처음 만들 때 어떤 파일도 추적하지 않기 때문입니다.
이를 위해 폴더의 루트 디렉토리에서 다음 명령을 실행할 수 있습니다:
git add .이 명령은 Git에게 현재 디렉토리의 모든 파일과 폴더를 포함하라고 지시합니다. 그런 다음 다음 명령을 실행하여 이를 확인할 수 있습니다:
git diff --cached
또한 읽어보세요: Git 캐시 지우는 방법
첫 번째 저장소 커밋하기
이제 파일이 저장소에 있으므로, 다음으로 해야 할 일은 Git 파일 시스템에 이러한 변경 사항을 기록하는 것입니다. 이는 폴더의 모든 새 파일을 적절하게 태그하고 해시하도록 보장합니다. 이를 위해 현재 저장소의 상태를 “커밋”해야 합니다.
이를 위해 다음 명령을 실행할 수 있습니다:
git commit -a이 명령은 Git에게 캐시에 보관 중인 모든 것을 가상 파일 시스템에 기록하라고 지시합니다.
그 후, Git은 이 특정 커밋에 대한 설명을 요청합니다. 이를 통해 무엇이 포함되어 있는지에 대한 간단한 설명을 제공하고 이 커밋을 다른 커밋과 쉽게 구별할 수 있습니다. 제 경우에는 첫 번째 커밋이므로 “초기 커밋”이라고 작성하겠습니다.

이제 다음 명령을 실행하여 Git이 디렉토리의 모든 파일을 인식하는지 확인할 수 있습니다:
git ls-files
위의 과정에서 Git이 당신을 인식하지 못하는 오류가 발생하면, 당신이 누구인지 알려줘야 합니다. 이를 위해 다음과 같이 입력하면 됩니다:
git config --global user.name "Your_Username"
git config --global user.email "[email protected]"Git에서의 기본 파일 작업
대부분의 경우, UNIX 명령은 Git과 함께 작동합니다. 이는 ls, cp, mv 및 rm을 Git 저장소 내의 모든 파일과 폴더에서 사용할 수 있음을 의미합니다. 그러나 Git 객체를 쉽게 조작할 수 있는 몇 가지 특정 명령이 있습니다.
예를 들어, ls-tree 서브커맨드를 사용하여 특정 Git 트리의 내용을 보고 각 파일의 현재 해시 값을 확인할 수 있습니다.
git ls-tree master
또한 사용할 수 있는 명령은 Git 버전의 mv입니다. 이를 통해 파일을 저장소 내의 어디로든 이동할 수 있으며 여전히 그 이력을 유지할 수 있습니다.
git mv ./hello.file ./welcome.file이는 버전 관리에서 파일 이름을 바꾸고 싶지만 Git을 통해 해당 변경 사항을 되돌릴 수 있는 기능도 원할 때 유용합니다.
그렇다면 다음 명령을 실행하여 이력을 잃지 않고 파일 이름을 바꿀 수 있습니다.

마지막으로, Git은 객체를 제거하기 위한 서브커맨드도 제공합니다. mv와 유사하게, 현재 저장소에서 파일을 제거하기 위해 Git 버전의 rm을 사용할 수 있습니다. 이렇게 하면 특정 파일에 대한 현재 객체를 깔끔하게 제거할 수 있습니다.
git rm ./old.file
원격 저장소 복제하기
원격 저장소를 로컬 머신으로 가져오는 것도 가능합니다. 이는 네트워크를 통해 다른 프로젝트를 복사해야 할 때 유용합니다. Git은 이미 존재하는 저장소를 복제할 수 있는 기능을 제공합니다.
복제하는 방식은 Git이 원격 프로젝트의 트리를 완전히 복사하는 것입니다. 이를 통해 특정 시점에 존재하는 저장소의 전체 이력을 재구성할 수 있습니다.
git clone https://github.com/git/git.git
로컬 네트워크에만 존재하는 저장소를 복제하는 것도 가능합니다. 이는 LAN에서 다른 사람들과 협업할 때 유용합니다. 또한, 로컬 네트워크에서 프로젝트를 복제하는 과정은 정확히 동일합니다:
git clone 192.168.1.100:/home/bob/awesome-project또한 읽어보세요: Git 별칭을 사용하여 Git을 더 효율적으로 사용하는 방법
온라인 프로젝트에 Git 사용하기
그렇다면 다른 사람들과 협업하는 또 다른 방법은 제3자 호스팅을 통해서입니다. 이 경우, GitHub와 같은 원격 서비스를 사용하여 인터넷에 프로젝트를 호스팅합니다. 이는 많은 청중에게 작업을 빠르고 쉽게 배포해야 할 때 매우 유용할 수 있습니다.

뿐만 아니라, GitHub와 같은 서비스는 저장소를 생성하고 유지하는 과정을 간소화합니다. 따라서 원격 네트워크에서 다른 사람들과 협업 프로젝트를 진행할 계획이라면 강력한 서비스입니다.
첫 번째 온라인 저장소 만들기
이제 GitHub를 통해 저장소를 시작하는 것은 매우 쉽습니다. 계정에 로그인하면 사이트가 개인 랜딩 페이지로 리디렉션됩니다.
이 페이지는 현재 팔로우 중인 프로젝트의 최신 업데이트를 표시합니다. 여기에는 다른 프로젝트에 대한 모든 기여의 간단한 이력이 포함됩니다.

여기서 프로필 사진 옆에 있는 “+” 기호를 클릭해야 합니다. 그러면 계정에 대한 여러 작업을 선택할 수 있는 작은 드롭다운 메뉴가 나타납니다. 그런 다음 해당 메뉴에서 “새 저장소” 링크를 클릭해야 합니다.

여기에서 온라인으로 수행할 프로젝트의 세부정보를 지정할 수 있습니다. 그 후, 프로젝트를 세밀하게 조정하기 위해 여러 옵션을 설정해야 합니다.

먼저, 프로젝트에 대한 저장소 이름을 제공해야 합니다. 이는 다른 사람들이 귀하의 저장소를 검색할 때 사용할 이름이 됩니다.
다음으로, 프로젝트의 개인 정보 설정을 설정해야 합니다. 공개 및 비공개 중에서 선택할 수 있습니다. 공개 저장소는 다른 사람들이 온라인에서 귀하의 프로젝트를 검색할 수 있게 해주고, 비공개 저장소는 몇몇 사람들과만 공유할 수 있는 기능을 제공합니다.
마지막으로, 새 프로젝트를 완료하기 위해 “저장소 만들기” 버튼을 클릭해야 합니다.
또한 읽어보세요: 로컬 및 원격 Git 브랜치 삭제하는 방법
GitHub를 로컬 머신에 연결하기
그렇다면 다음으로 해야 할 일은 로컬 머신을 GitHub 계정에 연결하는 것입니다. 이를 위해 두 가지 작업을 수행해야 합니다:
- 먼저, 머신에 대한 SSH 키를 생성해야 합니다. 이는 컴퓨터에서 로컬로 생성할 수 있는 짧은 암호화 키입니다.
- 마지막으로, GitHub에 현재 SSH 키를 알려야 합니다. 이를 통해 귀하의 머신은 GitHub에 고정된 신원을 갖게 됩니다. 그 결과, GitHub은 저장소를 업데이트할 때마다 귀하를 확인하는 데 이 신원을 사용합니다.
SSH 키 생성하기
Debian 또는 Ubuntu를 사용하는 경우, apt를 사용하여 SSH를 설치할 수 있습니다:
sudo apt install ssh
그 후, ssh-keygen 프로그램을 실행하여 SSH 키를 생성할 수 있습니다:
ssh-keygen -t ed25519 -C "[email protected]"
ssh-add /home/$USER/.ssh/id_ed25519SSH 키 연결하기
GitHub 대시보드로 돌아가서 프로필 사진을 클릭한 다음 설정을 클릭합니다.

이렇게 하면 GitHub 계정의 일반 설정이 나타납니다. 여기서 페이지 왼쪽 사이드바의 “접근” 섹션 아래에 있는 “SSH 및 GPG 키” 링크를 클릭해야 합니다.

“SSH 키” 헤더 옆에 있는 “새 SSH 키” 버튼을 클릭합니다. 그러면 새 SSH 키의 내용을 복사할 수 있는 키 설정 페이지가 로드됩니다.

키 파일을 열고 (제 경우에는 “~/.ssh” 디렉토리의 id_ed25519.pub 키 파일) 텍스트 편집기에서 내용을 복사하여 GitHub에 붙여넣습니다.
로컬 커밋을 온라인으로 푸시하기
마지막 단계는 로컬 프로젝트의 내용을 온라인으로 업로드하는 것입니다.
로컬 머신에서 Git 폴더로 이동하여 다음 명령을 실행하세요:
git remote add origin [email protected]:ramcesred/my-project.git
여기서 로컬 프로젝트가 현재 마스터 브랜치에 있는지 확인해야 합니다. 이는 Git이 프로젝트의 적절한 버전을 복사하도록 하기 위함입니다. 이를 확인하기 위해 다음 명령을 실행할 수 있습니다:
git branch -M main마지막으로, 프로젝트의 현재 상태를 온라인으로 푸시합니다:
git push -u origin main
축하합니다! 이제 Git 프로젝트에 대한 기본 작동 설정이 완료되었습니다. 뿐만 아니라, Git이 어떻게 작동하는지와 이를 어떻게 활용할 수 있는지에 대한 기본적인 아이디어도 갖게 되었습니다.
또한 읽어보세요: Windows에서 Git 및 Git Bash 설치하는 방법
자주 묻는 질문
다른 사람들이 내 온라인 Git 프로젝트에 대해 한 변경 사항을 가져올 수 있나요?
네! 다른 사람들이 온라인 저장소에 대해 한 변경 사항을 복사할 수 있습니다. 원격 원본에서 풀링하여 이를 수행할 수 있습니다.
다음 명령을 실행하여 쉽게 업데이트를 가져올 수 있습니다: git pull origin main
Git을 사용할 때 주의해야 할 문제는 무엇인가요?
Git을 사용할 때 가장 큰 문제 중 하나는 이진 파일을 저장할 때 많은 공간을 차지한다는 것입니다. 여기에는 이미지, 오피스 문서 형식 및 컴파일된 프로그램과 같이 일반 텍스트로 인코딩되지 않은 파일이 포함됩니다.
이는 Git이 객체를 저장하기 위해 사용하는 압축 및 해시 알고리즘이 일반 텍스트 파일을 선호하기 때문입니다. 버전 관리에 이진 파일을 포함하는 것은 가능하지만, Git과 함께 사용하는 것을 피하는 것이 좋습니다.
Git 트리에 파일을 포함하지 않는 것이 가능한가요?
네! 커밋에서 파일을 쉽게 제외할 수 있습니다. “.gitignore” 파일을 사용하여 Git에게 특정 파일을 포함하고 싶지 않다고 알릴 수 있습니다.
이는 저장소의 루트 폴더에 생성하는 숨겨진 텍스트 파일입니다. 여기에서 Git이 무시할 파일 및 디렉토리의 상대 경로를 포함합니다.
이미지 출처: Unsplash