웹사이트 검색

Git을 효과적으로 사용하는 방법


소개

Git과 같은 버전 제어 시스템은 최신 소프트웨어 개발 모범 사례에 필수적입니다. 버전 관리를 통해 소스 수준에서 소프트웨어를 추적할 수 있습니다. 변경 사항을 추적하고 이전 단계로 되돌리며 분기하여 파일 및 디렉터리의 대체 버전을 만들 수 있습니다.

많은 소프트웨어 프로젝트의 파일은 Git 리포지토리에서 유지 관리되며 GitHub, GitLab 및 Bitbucket과 같은 플랫폼은 소프트웨어 개발 프로젝트 공유 및 협업을 촉진하는 데 도움이 됩니다.

Git을 설치한 후에는 프로젝트 리포지토리를 유지 관리하기 위한 핵심 명령에 익숙해지는 데 시간을 할애해야 합니다. 이 자습서에서는 명령줄에서 Git 리포지토리를 만들고 푸시하는 첫 번째 단계를 안내합니다.

전제 조건

  • Ubuntu 20.04에 Git을 설치하는 버전 관리 도구

1단계 - 작업 공간 만들기

기존 프로젝트를 Git 리포지토리로 변환하는 경우 2단계로 진행할 수 있습니다. 그렇지 않으면 새 작업 디렉터리를 생성하여 시작할 수 있습니다.

  1. mkdir testing

다음으로 해당 작업 디렉토리로 이동합니다.

  1. cd testing

해당 디렉토리에 들어가면 Git의 기능을 시연하기 위한 샘플 파일을 만들어야 합니다. touch 명령을 사용하여 빈 파일을 만들 수 있습니다.

  1. touch file

모든 프로젝트 파일이 작업 공간에 있으면 git으로 파일 추적을 시작해야 합니다. 다음 단계에서는 해당 프로세스를 설명합니다.

2단계 — 기존 프로젝트를 작업 공간 환경으로 변환

git init 명령을 사용하여 기존 디렉토리에서 Git 리포지토리를 초기화할 수 있습니다.

  1. git init
Output
Initialized empty Git repository in /home/sammy/testing/.git/

다음으로 Git에서 기존 파일을 추적할 수 있도록 하려면 git add 명령을 사용해야 합니다. 대부분의 경우 Git은 새 파일을 자동으로 추적하지 않으므로 git add는 Git이 이전에 추적하지 않은 저장소에 새 콘텐츠를 추가할 때 필요한 단계입니다.

  1. git add .

이제 능동적으로 추적되는 Git 리포지토리가 있습니다. 지금부터 이 튜토리얼의 각 단계는 기존 Git 리포지토리를 업데이트하고 커밋하기 위한 일반 워크플로우와 일치합니다.

3단계 — 커밋 메시지 생성

Git 리포지토리에 대한 변경 사항을 커밋할 때마다 커밋 메시지를 제공해야 합니다. 커밋 메시지는 변경 사항을 요약합니다. 커밋 메시지는 비워둘 수 없지만 길이는 얼마든지 가능합니다. 일부 사람들은 매우 길고 설명적인 커밋 메시지를 선호하지만 Github와 같은 일부 플랫폼에서는 짧은 커밋 메시지를 더 쉽게 읽을 수 있습니다.

기존 프로젝트를 처음으로 Git에 가져오는 경우 "Initial Commit\과 같은 메시지를 사용하는 것이 일반적입니다. git commit 명령을 사용하여 커밋을 생성할 수 있습니다.

  1. 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으로 작업할 때 대부분의 시간을 향후 커밋에 모든 업데이트된 파일을 포함하도록 기본 설정될 수 있습니다.

단일 파일 또는 몇 개의 파일을 커밋하려면 다음을 사용할 수 있습니다.

  1. git commit -m "Initial Commit" file1 file2

다음 단계에서는 이 커밋을 원격 저장소로 푸시합니다.

4단계 - 변경 사항을 원격 서버로 푸시

지금까지는 자신의 환경에서만 작업했습니다. 실제로 변경 사항을 추적하고 되돌리기 위해 고급 명령줄 기능을 사용하여 이러한 방식으로 Git을 사용함으로써 여전히 이점을 얻을 수 있습니다. 그러나 Github와 같은 플랫폼에서 인기 있는 협업 기능을 사용하려면 원격 서버에 변경 사항을 푸시해야 합니다.

원격 서버에 코드를 푸시할 수 있는 첫 번째 단계는 리포지토리가 있는 URL을 제공하고 로컬 이름을 지정하는 것입니다. 원격 저장소를 구성하고 모든 원격 목록을 보려면(하나 이상 있을 수 있음) git remote 명령을 사용하십시오.

  1. git remote add origin ssh://git@git.domain.tld/repository.git
  2. git remote -v
Output
origin 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을 사용해야 합니다.

리모컨이 구성되면 코드를 푸시할 수 있습니다. 다음을 입력하여 코드를 원격 서버로 푸시할 수 있습니다.

  1. git push origin main

참고: 2021년 이전에는 Git 리포지토리에서 생성된 첫 번째 분기의 이름이 기본적으로 master였습니다. 보다 중립적인 용어를 사용하기 위해 기본 브랜치 이름을 main으로 변경하려는 움직임이 있었습니다. Github와 같은 많은 Git 호스팅 공급자가 이 변경을 수행했지만 Git의 로컬 사본은 여전히 master로 기본 설정될 수 있습니다. main이라는 존재하지 않는 분기에 대한 오류 메시지가 표시되면 지금 대신 master를 푸시해 보십시오.

Output
Counting 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 참조 가이드에 대해 알아볼 수 있습니다.