데이터 분석가를 위한 Git 및 GitHub 가이드
Source: Dev.to
Git이란 무엇이며 버전 관리가 중요한 이유
버전 관리는 파일이나 파일 집합에 대한 변경 사항을 시간 순으로 기록하여 나중에 특정 버전을 다시 불러올 수 있게 하는 시스템입니다.
Git은 분산 버전 관리 시스템 (DVCS) 입니다. 파일이 잠기는 중앙 서버와 달리, 각 개발자의 컴퓨터에 코드 히스토리 전체가 복제됩니다.
왜 이것이 중요한가?
- “실행 취소” 버튼: 새벽 2시에 코드를 망가뜨렸다면, 바로 전날 밤 10시 상태로 프로젝트를 되돌릴 수 있습니다.
- 협업: 여러 데이터 분석가가 동시에 같은 파일을 작업할 수 있습니다. Git은 수학적 알고리즘을 사용해 이러한 변경을 병합(merge)합니다.
- 브랜칭: 메인 작업 코드를 깨뜨리지 않고 아이디어를 시험해 볼 수 있는 별도 세계(브랜치)를 만들 수 있습니다.
- 맥락: 누가(
who) 언제(when) 어떤 이유(why)로 코드를 작성했는지(커밋 메시지를 통해) 알려줍니다.
Git과 GitHub에 대한 참고
- Git은 도구(당신의 머신에 설치되는 소프트웨어)입니다.
- GitHub은 서비스(클라우드에 Git 저장소를 호스팅하는 웹사이트)입니다. 비유하자면: Git은 MP3, GitHub은 Spotify와 같습니다.
변경 사항 추적하기 (Git 워크플로우)
Git에서 변경 사항을 추적하는 과정은 세 단계로 이루어집니다:
- 작업 디렉터리: 파일을 편집하는 곳.
- 스테이징 영역(Index): 어떤 변경을 저장할지 선택하는 곳.
- 저장소(HEAD): 코드가 영구적으로 보관되는 곳.
자주 사용하는 명령어
# Initialize a new Git repository
git init
# Show the status of your files
git status
단계 A – 스테이징
# Add a specific file
git add main.py
# Or add all changed files in the current directory
git add .
단계 B – 커밋
# Create a permanent snapshot with a message
git commit -m "Implement the quadratic formula function"
베스트 프랙티스: 커밋 메시지는 명령형으로 작성합니다(예: “Add feature”가 “Added feature”보다 좋습니다).
코드를 GitHub에 푸시하기
“푸시(push)”는 로컬 저장소 히스토리를 원격 서버(GitHub)로 업로드하는 작업입니다.
전제 조건: GitHub.com에 빈(empty) 저장소를 새로 만든다.
단계 A – 로컬과 원격 연결
git remote add origin https://github.com/cyrusz55/my-project.git
단계 B – 코드 푸시
git push -u origin main
origin– 원격 이름(GitHub).main– 보내는 브랜치(예전에는master).-u– 업스트림을 설정해 이후git push를 인자 없이 실행할 수 있게 함.
GitHub에서 코드를 풀하기
“풀(pull)”은 GitHub에 있는 데이터를 내 컴퓨터로 다운로드하는 작업입니다. 두 가지 일반적인 상황이 있습니다.
상황 A – 처음부터 시작하기 (git clone)
git clone https://github.com/cyrusz55/my-project.git
이 명령은 저장소를 초기화하고, 원격 링크를 만들며, 전체 히스토리를 한 번에 다운로드합니다.
상황 B – 기존 코드 업데이트하기 (git pull)
git pull origin main
새로운 변경을 가져와 로컬 파일에 병합합니다.
요약 치트시트
| 목표 | 명령어 |
|---|---|
| Git 시작 | git init |
| 상태 확인 | git status |
| 파일 스테이징 | git add . |
| 스냅샷 저장 | git commit -m "message" |
| 저장소 다운로드 | git clone |
| 변경 업로드 | git push |
| 로컬 업데이트 | git pull |
행복한 코딩 되세요! 🚀