Git 시작하기

  • 7 minutes to read

강의 목차

  1. Git 소개

    • 버전 관리 시스템의 필요성
    • Git의 역사와 개념
    • Git의 특징과 장단점
  2. Git 설치 및 설정

    • Git 설치하기
    • Git 설정하기
    • Git 환경 구성하기
  3. Git 기본 사용

    • Git 저장소 초기화
    • 파일 추적하기
    • 커밋하기
    • 브랜치와 병합
    • 로그와 이력 조회
    • 원격 저장소와 연동하기
  4. Git 심화 사용

    • 태그 사용하기
    • Rebase
    • Cherry-pick
    • Stash
    • Submodule
  5. Git 협업

    • 협업 워크플로우
    • Pull Request 보내기
    • 리뷰어로 참여하기
    • 충돌 해결하기
  6. Git 도구

    • Git GUI 클라이언트
    • Git 호스팅 서비스
    • Git 호스팅 서비스와 연동
    • Git Hooks
  7. Git 유지 보수

    • Git 버전 업그레이드
    • Git 버그 해결
    • Git 보안 유지

Git 소개

1. 버전 관리 시스템의 필요성

소프트웨어 개발에서는 코드를 수정하고 업데이트하는 일이 끊이지 않습니다. 이에 따라 여러 개발자들이 동시에 작업하면서 같은 코드를 다루게 되는데, 이를 관리하기 위해서는 각자가 수정한 내용을 정확히 파악하고, 수정 내용을 효율적으로 적용해야 합니다. 이를 위해서는 버전 관리 시스템이 필요합니다.

버전 관리 시스템은 개발 과정에서 변경된 내용을 추적하고, 이전 버전과 비교하여 변경 내용을 확인하고 복원할 수 있습니다. 이를 통해 개발자는 다른 개발자들과 함께 작업할 때, 어느 부분이 수정되었는지, 누가 수정했는지, 어떻게 수정했는지 쉽게 파악할 수 있으며, 필요한 경우 이전 버전으로 돌아갈 수 있습니다.

2. Git의 역사와 개념

Git은 2005년 리누스 토발즈가 Linux 커널 개발에 사용하기 위해 개발한 분산 버전 관리 시스템입니다. 이전에는 대부분 중앙집중식 버전 관리 시스템이 주로 사용되었지만, Git은 분산 버전 관리 시스템으로 개발자들 사이에서 높은 인기를 얻게 되었습니다.

Git은 모든 개발자들이 자신의 컴퓨터에 전체 저장소의 사본을 가지고 있다는 개념을 바탕으로 작동합니다. 이를 통해 서버의 장애나 네트워크 연결이 끊어지는 등의 문제가 발생하더라도, 개발자들은 자신의 컴퓨터에 있는 사본으로 작업을 계속할 수 있습니다.

3. Git의 특징과 장단점

특징

  • 분산 버전 관리 시스템
  • 빠른 속도와 간편한 설치 및 사용
  • 커밋 단위로 변경 이력을 관리
  • 브랜치를 통한 병렬 개발 및 병합
  • 오프라인 환경에서도 작업 가능

장단점

장점
  • 버전 관리 시스템의 필수적인 기능을 모두 제공
  • 분산 버전 관리 시스템으로서, 안정성과 신뢰성이 높음
  • 다양한 개발자들이 동시에 작업 가능하며, 변경 이력 관리가 용이함
  • 개발자들 사이의 협업을 원활하게 함

단점

  • 초기 사용이 어려울 수 있음
  • GUI 도구의 부재로 인해 명령어 사용에 익숙하지 않은 개발자들에게는 어려움을 줄 수 있음
  • 큰 저장소를 관리할 경우, 저장소의 용량이 크게 증가할 수 있음

Git은 현재 가장 많이 사용되는 버전 관리 시스템 중 하나이며, 개발자들 사이에서 높은 인기를 얻고 있습니다. Git을 사용하면 개발자들은 협업하면서 코드를 수정, 관리하고, 변경 이력을 관리할 수 있습니다. 이어지는 강의에서는 Git의 기본 사용 방법부터 심화적인 기능과 협업에 대한 내용까지 다룰 예정입니다.

Git 정보 출력 명령어

터미널에서 Git 관련 정보를 출력할 수 있는 명령어는 다음과 같습니다.

  1. git --version 현재 시스템에 설치된 Git의 버전 정보를 출력합니다.
$ git --version
git version 2.30.1
  1. git config --list

현재 Git 저장소의 설정 정보를 출력합니다. --global 옵션을 추가하면 전역 설정 정보를 출력할 수 있습니다.

$ git config --list
user.name=Your Name
user.email=youremail@example.com
core.editor=vim
  1. git status

현재 작업 중인 Git 저장소의 상태를 출력합니다.

$ git status
On branch master
Your branch is up to date with 'origin/master'.

nothing to commit, working tree clean
  1. git branch

현재 작업 중인 Git 저장소의 브랜치 목록을 출력합니다.

$ git branch
* master
  develop
  1. git log

현재 작업 중인 Git 저장소의 커밋 로그를 출력합니다.

$ git log
commit 764b26fc5b6fc177d6e96b6c46dd1f5e78f70eb0 (HEAD -> master)
Author: Your Name <youremail@example.com>
Date:   Wed Feb 16 12:45:17 2022 +0900

    Add new feature

commit 637e7c61c8e91af37ec0f70852b194cc265e5a5a
Author: Your Name <youremail@example.com>
Date:   Tue Feb 15 15:37:21 2022 +0900

    Update README.md

commit c2cf8d34d165f5b138c3a3a3a1cfe69bfb740a49
Author: Your Name <youremail@example.com>
Date:   Tue Feb 15 11:53:10 2022 +0900

    Initial commit
  1. git diff

마지막 커밋 이후에 변경된 파일의 변경 내용을 출력합니다.

$ git diff
diff --git a/file1.txt b/file1.txt
index d0d57fb..7c10798 100644
--- a/file1.txt
+++ b/file1.txt
@@ -1,2 +1,3 @@
 This is file1.
 It is used for testing.
+Add new line.

이와 같이, Git은 명령어를 통해 다양한 정보를 출력할 수 있도록 지원하고 있습니다. 이어지는 강의에서는 Git의 기본 사용 방법부터 심화적인 기능과 협업에 대한 내용까지 다룰 예정입니다.

VisualAcademy Docs의 모든 콘텐츠, 이미지, 동영상의 저작권은 박용준에게 있습니다. 저작권법에 의해 보호를 받는 저작물이므로 무단 전재와 복제를 금합니다. 사이트의 콘텐츠를 복제하여 블로그, 웹사이트 등에 게시할 수 없습니다. 단, 링크와 SNS 공유, Youtube 동영상 공유는 허용합니다. www.VisualAcademy.com
박용준 강사의 모든 동영상 강의는 데브렉에서 독점으로 제공됩니다. www.devlec.com