Git 사용법 상세 튜토리얼: 초보자를 위한 완벽 가이드
Git 사용법 상세 튜토리얼: 초보자를 위한 완벽 가이드
Git은 현대 소프트웨어 개발에서 필수적인 도구입니다. 이 글에서는 Git이 무엇인지, 왜 필요한지, 그리고 기본적인 사용법을 자세히 알아보겠습니다. Git을 통해 여러분의 프로젝트 관리 능력을 한 단계 업그레이드해보세요!
Git을 사용하는 이유
Git은 여러분의 작업 흐름을 혁신적으로 관리해주는 도구입니다. 마치 시간 여행이 가능한 것처럼, 작업 중 실수를 저지르거나 이전 버전과 현재 버전 간에 혼란이 있을 때 언제든지 폴더 상태를 되돌릴 수 있게 해줍니다. 단순히 Ctrl+Z 수준을 넘어, 모든 파일의 저장 상태를 이전 시점으로, 또는 아예 맨 처음으로 되돌릴 수 있습니다.
이전처럼 폴더를 압축하여 시점별로 저장할 필요가 없어지며, 주 작업 공간에서 위험한 실험적 시도를 해보거나, 여러 고객에게 맞는 다른 버전의 소프트웨어를 만들 때 매우 유용합니다. Git이 없을 때는 폴더를 통째로 복사해서 작업해야 하지만, Git은 폴더 안에 여러 독립적인 작업 환경(브랜치)을 생성하여 자유자재로 이 작업 환경들을 넘나들며 작업할 수 있도록 돕습니다. 특정 브랜치에서 진행한 실험적 기능이 마음에 들면 현재 작업 중인 브랜치로 가져올 수도 있습니다.
Git 사용 준비물
Git을 효과적으로 사용하기 위해 다음 도구들을 준비하는 것이 좋습니다.
- Git 설치: git-scm.com 사이트에 접속하여 최신 버전의 설치 파일을 다운로드하고 설치합니다.
- IDE (통합 개발 환경): 코딩할 때 사용하는 프로그램입니다. 인텔리제이, 아톰, 안드로이드 스튜디오 등 다양하지만, 이 가이드에서는 Visual Studio Code를 사용합니다. 구글에서 "vs code"를 검색하여 다운로드할 수 있습니다.
- SourceTree: Git을 마우스로 다룰 수 있게 해주는 GUI(그래픽 사용자 인터페이스) 소프트웨어입니다. SourceTree 앱 사이트로 가서 다운로드하고 설치합니다.
Git 저장소 만들기
Git을 사용하기 위한 첫 단계는 '저장소(Repository)'를 만드는 것입니다.
- 원하는 위치에 프로젝트 폴더를 만들고 VS Code로 엽니다.
- 터미널에서 git init을 입력하여 Git 저장소를 만듭니다.
- git config --global user.name "내 이름"과 git config --global user.email "내 메일주소" 명령어를 사용하여 여러분의 이름과 이메일을 등록합니다.
- SourceTree를 통해서도 Git 저장소를 쉽게 만들 수 있습니다.
현재 시점을 저장하기 (Commit)
작업 내용을 Git에 기록하는 과정을 '커밋(Commit)'이라고 합니다.
- git status 명령어를 사용하여 Git이 관리하는 파일들의 상태를 확인합니다.
- git add -A 명령어를 입력하여 변경된 모든 파일을 Git의 타임캡슐에 담습니다.
- git commit -m "메시지" 명령어를 사용하여 타임캡슐을 묻고, 어떤 변경 사항인지 설명하는 메시지를 남깁니다.
- SourceTree에서는 시각적으로 파일을 담고 커밋할 수 있어 편리합니다.
과거로 돌아가기 (Reset & Revert)
실수를 했을 때 과거로 돌아가는 방법은 두 가지가 있습니다.
- Reset: git reset --hard [커밋ID] 명령어를 사용하여 특정 시점으로 되돌아갑니다. 이 방법은 그 이후의 행적을 완전히 삭제하므로 주의해야 합니다.
- Revert: git revert [커밋ID] 명령어를 사용하여 특정 시점의 변경을 취소합니다. 이 방법은 취소 내역이 새로운 커밋으로 기록되어 히스토리를 보존하는 장점이 있습니다. SourceTree에서도 Reset과 Revert 기능을 쉽게 사용할 수 있습니다.
독립적인 작업 흐름 만들기 (Branch)
Git의 '브랜치(Branch)'는 여러 독립적인 작업 흐름을 만들어 동시에 여러 작업을 진행할 수 있게 합니다.
- git branch [브랜치 이름] 명령어를 사용하여 새로운 브랜치를 만듭니다.
- git checkout [브랜치 이름] 명령어를 사용하여 다른 브랜치로 이동합니다.
- SourceTree에서는 브랜치 보기를 통해 브랜치를 쉽게 생성하고 이동할 수 있습니다.
브랜치 통합하기 (Merge & Rebase)
다른 브랜치에서 작업한 내용을 현재 브랜치로 가져오는 두 가지 주요 방법입니다.
- Merge(병합): git merge [브랜치 이름] 명령어를 사용하여 현재 브랜치에 다른 브랜치의 변경 사항을 병합합니다. 병합 시 **충돌(Conflict)**이 발생할 수 있으며, 이때 수동으로 충돌을 해결해야 합니다. SourceTree에서는 병합 과정을 시각적으로 확인하고 처리할 수 있습니다.
- Rebase(리베이스): git rebase [브랜치 이름] 명령어를 사용하여 변경 내용을 한 줄로 깔끔하게 정리하며 병합합니다. Rebase는 병합과 달리 히스토리를 단순화하여 깔끔하게 보존하는 장점이 있습니다. SourceTree에서도 Rebase 기능을 사용할 수 있습니다.
브랜치 삭제
다 사용한 브랜치는 삭제하여 관리할 수 있습니다.
- git branch -d [브랜치 이름] 명령어를 사용하여 브랜치를 삭제할 수 있습니다.
- SourceTree에서는 우클릭하여 브랜치를 삭제할 수 있습니다.
협업하기, Git Hub
GitHub는 Git 저장소를 호스팅하고 공유하는 웹 기반 플랫폼이에요. 개발자들이 코드를 함께 작업하고 버전을 관리하며 프로젝트를 협업할 수 있도록 돕는 서비스입니다. 전 세계 개발자들이 오픈 소스 프로젝트에 참여하거나 자신의 코드를 공개하고 관리하는 데 주로 사용됩니다. 협업하는 깃, 깃허브입니다.
여러 사람이 모듈별로 나누어 실시간으로 작업하는 소프트웨어 개발의 특성상 로컬 저장소라던지 메일이나 클라우드를 통해 관리하려면 어렵고 불편하조. 따라서 작업 중 실시간으로 작업내역을 공유할 수 있는 원격저장소가 필요합니다. 이 때 필요한 것이 협업을 위한 저장소, Github라 부르기도 하조!
이 튜토리얼을 통해 Git의 기본적인 개념과 사용법을 익히셨기를 바랍니다. Git은 처음에는 복잡하게 느껴질 수 있지만, 꾸준히 사용하다 보면 여러분의 개발 워크플로우를 혁신적으로 개선해 줄 강력한 도구가 될 것입니다. git-hub하라!!!