Git을 효과적으로 사용하는 방법
소개
Git과 같은 버전 제어 시스템은 최신 소프트웨어 개발 모범 사례에 필수적입니다. 버전 관리를 통해 소스 수준에서 소프트웨어를 추적할 수 있습니다. 변경 사항을 추적하고 이전 단계로 되돌리며 분기하여 파일 및 디렉터리의 대체 버전을 만들 수 있습니다.
많은 소프트웨어 프로젝트의 파일은 Git 리포지토리에서 유지 관리되며 GitHub, GitLab 및 Bitbucket과 같은 플랫폼은 소프트웨어 개발 프로젝트 공유 및 협업을 촉진하는 데 도움이 됩니다.
Git을 설치한 후에는 프로젝트 리포지토리를 유지 관리하기 위한 핵심 명령에 익숙해지는 데 시간을 할애해야 합니다. 이 자습서에서는 명령줄에서 Git 리포지토리를 만들고 푸시하는 첫 번째 단계를 안내합니다.
전제 조건
- Ubuntu 20.04에 Git을 설치하는 버전 관리 도구
1단계 - 작업 공간 만들기
기존 프로젝트를 Git 리포지토리로 변환하는 경우 2단계로 진행할 수 있습니다. 그렇지 않으면 새 작업 디렉터리를 생성하여 시작할 수 있습니다.
- mkdir testing
다음으로 해당 작업 디렉토리로 이동합니다.
- cd testing
해당 디렉토리에 들어가면 Git의 기능을 시연하기 위한 샘플 파일을 만들어야 합니다. touch
명령을 사용하여 빈 파일을 만들 수 있습니다.
- touch file
모든 프로젝트 파일이 작업 공간에 있으면 git으로 파일 추적을 시작해야 합니다. 다음 단계에서는 해당 프로세스를 설명합니다.
2단계 — 기존 프로젝트를 작업 공간 환경으로 변환
git init
명령을 사용하여 기존 디렉토리에서 Git 리포지토리를 초기화할 수 있습니다.
- git init
OutputInitialized empty Git repository in /home/sammy/testing/.git/
다음으로 Git에서 기존 파일을 추적할 수 있도록 하려면 git add
명령을 사용해야 합니다. 대부분의 경우 Git은 새 파일을 자동으로 추적하지 않으므로 git add
는 Git이 이전에 추적하지 않은 저장소에 새 콘텐츠를 추가할 때 필요한 단계입니다.
- git add .
이제 능동적으로 추적되는 Git 리포지토리가 있습니다. 지금부터 이 튜토리얼의 각 단계는 기존 Git 리포지토리를 업데이트하고 커밋하기 위한 일반 워크플로우와 일치합니다.
3단계 — 커밋 메시지 생성
Git 리포지토리에 대한 변경 사항을 커밋할 때마다 커밋 메시지를 제공해야 합니다. 커밋 메시지는 변경 사항을 요약합니다. 커밋 메시지는 비워둘 수 없지만 길이는 얼마든지 가능합니다. 일부 사람들은 매우 길고 설명적인 커밋 메시지를 선호하지만 Github와 같은 일부 플랫폼에서는 짧은 커밋 메시지를 더 쉽게 읽을 수 있습니다.
기존 프로젝트를 처음으로 Git에 가져오는 경우 "Initial Commit\과 같은 메시지를 사용하는 것이 일반적입니다. git commit
명령을 사용하여 커밋을 생성할 수 있습니다.
- git commit -m "Initial Commit" -a
Output[master (root-commit) 1b830f8] initial commit
0 files changed
create mode 100644 file
위 명령에는 두 가지 중요한 매개변수가 있습니다. 첫 번째는 -m으로 커밋 메시지(이 경우 "Initial Commit\)가 뒤따를 것임을 나타냅니다. 두 번째로 -a는 커밋에 추가되거나 수정된 모든 파일을 포함해야 함을 나타냅니다. Git은 이를 다음과 같이 처리하지 않습니다. 기본 동작이지만 나중에 Git으로 작업할 때 대부분의 시간을 향후 커밋에 모든 업데이트된 파일을 포함하도록 기본 설정될 수 있습니다.
단일 파일 또는 몇 개의 파일을 커밋하려면 다음을 사용할 수 있습니다.
- git commit -m "Initial Commit" file1 file2
다음 단계에서는 이 커밋을 원격 저장소로 푸시합니다.
4단계 - 변경 사항을 원격 서버로 푸시
지금까지는 자신의 환경에서만 작업했습니다. 실제로 변경 사항을 추적하고 되돌리기 위해 고급 명령줄 기능을 사용하여 이러한 방식으로 Git을 사용함으로써 여전히 이점을 얻을 수 있습니다. 그러나 Github와 같은 플랫폼에서 인기 있는 협업 기능을 사용하려면 원격 서버에 변경 사항을 푸시해야 합니다.
원격 서버에 코드를 푸시할 수 있는 첫 번째 단계는 리포지토리가 있는 URL을 제공하고 로컬 이름을 지정하는 것입니다. 원격 저장소를 구성하고 모든 원격 목록을 보려면(하나 이상 있을 수 있음) git remote
명령을 사용하십시오.
- git remote add origin ssh://git@git.domain.tld/repository.git
- git remote -v
Outputorigin ssh://git@git.domain.tld/repository.git (fetch)
origin ssh://git@git.domain.tld/repository.git (push)
첫 번째 명령은 "origin\이라는 원격을 추가하고 URL을 ssh://git@git.domain.tld/repository.git로 설정합니다.
원하는 대로 리모컨의 이름을 지정할 수 있습니다. origin
은 코드의 신뢰할 수 있는 업스트림 복사본이 위치하는 일반적인 규칙입니다. URL은 실제 원격 저장소를 가리켜야 합니다. 예를 들어 GitHub에 코드를 푸시하려면 GitHub에서 제공하는 리포지토리 URL을 사용해야 합니다.
리모컨이 구성되면 코드를 푸시할 수 있습니다. 다음을 입력하여 코드를 원격 서버로 푸시할 수 있습니다.
- git push origin main
참고: 2021년 이전에는 Git 리포지토리에서 생성된 첫 번째 분기의 이름이 기본적으로 master
였습니다. 보다 중립적인 용어를 사용하기 위해 기본 브랜치 이름을 main
으로 변경하려는 움직임이 있었습니다. Github와 같은 많은 Git 호스팅 공급자가 이 변경을 수행했지만 Git의 로컬 사본은 여전히 master
로 기본 설정될 수 있습니다. main
이라는 존재하지 않는 분기에 대한 오류 메시지가 표시되면 지금 대신 master
를 푸시해 보십시오.
OutputCounting objects: 4, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 266 bytes, done.
Total 3 (delta 1), reused 1 (delta 0)
To ssh://git@git.domain.tld/repository.git
0e78fdf..e6a8ddc main -> main
나중에 푸시할 커밋이 더 많으면 기본적으로 git push
를 입력할 수 있습니다. 이렇게 하면 마지막 푸시에서 브랜치 이름과 원격 이름을 모두 상속합니다.
결론
이 자습서에서는 시작 Git 리포지토리를 만들고 푸시했습니다. 코드를 커밋하고 GitHub와 같은 리포지토리로 푸시한 후 웹 인터페이스에서 공동 작업에 더 많은 시간을 할애할 수 있지만 명령줄에서 로컬 컴퓨터에서 작업할 수 있는 것이 항상 중요합니다. 커미터가 여러 명인 프로젝트를 유지 관리하거나 기여하려면 더 복잡한 Git 명령이 필요하지만 이 자습서에서 다룬 내용은 개인 프로젝트에서 작업하기에 충분합니다.
다음으로 Git 참조 가이드에 대해 알아볼 수 있습니다.