GitHub용 Git: 간단한 Git 명령으로 GitHub 저장소 관리하기
출처: Dev.to
이야기
최근에 나는 클라우드 기반 IDE(CodeHS)에서 웹사이트를 만들고 있었다. 어느 날 밤에 편집을 마치고 모니터를 끄고 마우스와 키보드를 비활성화했다. 다음 날 학교에서 작업을 이어가며 큰 변화를 주었고, 집에 와서 또 다시 변경을 한 뒤에 중요한 사실을 깨달았다: 클라우드 기반 IDE가 새로운 코드를 새로 고침하지 않아, 새 작업을 저장했을 때 학교에서 한 작업을 덮어쓴 것이었다.
왜 이 이야기를 하는가? “항상 에디터를 닫아라” 같은 트릭이 아니다. 처음 당황한 뒤 나는 IDE의 History 섹션을 발견했는데, 여기에는 모든 파일에 대한 모든 변경 내역이 기록된다. 나는 히스토리에서 잃어버린 변경 사항을 복사해 복원했다.
이제 클라우드 기반 IDE를 쓰지 않고, 로컬 IDE나 터미널에서 파일을 편집한다고 상상해 보라. 뭔가가 깨지면 파일의 이전 상태가 영원히 사라질 수 있다.
Git 같은 **버전 관리 시스템(VCS)**을 사용하면 이런 일이 방지된다: 언제든 이전 커밋(코드 스냅샷)으로 돌아갈 수 있다.
내가 거의 잃을 뻔한 작업은 중요하지 않았지만, 직장이나 중요한 프로젝트의 코드를 잃는 상황을 상상해 보라.
Git이란?
Git은 전 세계에서 가장 인기 있는 VCS다. 무료이며 오픈소스이고 활발히 유지보수되고 있다.
“현재 전 세계에서 가장 널리 사용되는 현대 버전 관리 시스템은 Git이다. Git은 2005년 리눅스 커널의 유명한 창시자 리누스 토르발스가 처음 개발한, 성숙하고 활발히 유지보수되는 오픈소스 프로젝트다.”
— Atlassian
이 가이드에서는 다음을 배운다:
- Git 설치하기.
- 사용자 정보를 설정하기.
- 로컬 저장소 초기화하기.
- GitHub 저장소에 커밋을 푸시하기.
1단계 – Git 설치
터미널 열기
| OS | 여는 방법 |
|---|---|
| Windows | Windows 키를 누르고 PowerShell을 입력한 뒤 Enter를 누른다. |
| macOS | ⌘ Space를 누르고 Terminal을 입력한 뒤 Enter를 누른다. |
| Linux | Ctrl + Alt + T를 누른다. |
설치 확인
git --version
버전 번호가 표시되면 2단계로 진행한다.
명령어를 인식하지 못한다면 아래 OS별 안내를 따라라.
Windows
-
Winget 사용
winget install --id Git.Git -e --source winget -
설치 파일 사용 – 공식 사이트에서 독립 실행형 설치 파일을 다운로드한다.
macOS
-
Homebrew 사용 (Homebrew가 없으면 먼저 설치)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" brew install git
Linux
배포판의 패키지 관리자를 사용한다:
| 배포판 | 명령 |
|---|---|
| Debian/Ubuntu | sudo apt-get install git |
| Fedora | sudo dnf install git |
| Arch | sudo pacman -S git |
2단계 – 사용자 정보 설정
Git은 각 커밋에 이름과 이메일을 붙인다. 전역으로 설정한다:
# 표시할 이름 (실명, GitHub 사용자명 등)
git config --global user.name "Your Name"
# 이메일 (GitHub 계정에 등록된 이메일과 일치해야 함)
git config --global user.email "your-email@example.com"
설정을 확인하려면:
git config --global --list
3단계 – 로컬 저장소 초기화
-
프로젝트 폴더로 이동
cd path/to/your/project -
저장소를 만들고 기본 브랜치를
main으로 지정git init -b main -
모든 파일을 스테이징 (Git에게 추적하도록 알림)
git add . -
명확한 명령형 메시지와 함께 커밋
git commit -m "Initial commit"좋은 커밋 스타일 예시:
Add CSS rule to fix whitespace(“Added CSS rule …”는 X)
4단계 – GitHub 저장소 만들고 연결하기
- GitHub 계정이 없으면 만든다.
- 로그인한다.
- 녹색 “New” 버튼(Repositories 리스트 오른쪽 상단)을 클릭하거나 직접 이동한다.
- 저장소 이름을 입력한다.
- “Add …” 옵션을 모두 해제한다(README, .gitignore, 라이선스는 아직 만들지 않는다).
- Create repository를 클릭한다.
원격 저장소 추가하고 로컬 커밋 푸시하기
# USER와 REPO를 자신의 GitHub 사용자명과 저장소 이름으로 바꾼다
git remote add origin https://github.com/USER/REPO.git
# 로컬 main 브랜치를 GitHub에 푸시
git push -u origin main
이제 GitHub에서 코드를 확인할 수 있다.
정리
- 작업을 한 복사본에만 의존하지 말라.
- Git은 모든 변경 내역을 완전하게 보관해 주어, 잃어버린 작업을 즉시 복구할 수 있다.
- 위 단계대로 Git을 설치하고, 설정하고, 저장소를 초기화하고, GitHub에 푸시하라.
코딩 즐겁게! 🚀
저장소 만들기
- Create Repository 버튼을 클릭한다.
- URL을 기억한다 – 다음 단계에서 필요하다.
로컬 프로젝트를 저장소에 연결하기
로컬 프로젝트 폴더로 이동한 뒤 아래 명령을 실행한다. “ 부분을 앞 단계에서 저장한 URL로 바꾼다.
git remote add origin
GitHub에 푸시하기
이제 로컬 커밋을 원격 저장소에 푸시한다:
git push -u origin main
-u플래그는 upstream 트래킹을 설정한다. 로컬main브랜치가 원격origin/main과 연결되므로 이후에는git push만 입력하면 된다.
이제:
- 로컬 Git 저장소를 초기화했고
- 변경 사항을 추적했으며
- 코드를 안전하게 GitHub에 푸시했다
프로젝트가 원격 저장소와 연결되었으니 워크플로가 훨씬 간단해졌다.
전형적인 Git 워크플로 (네 가지 핵심 명령)
| 명령 | 보여 주는 내용 / 동작 |
|---|---|
git status | • 현재 브랜치 • 원격 대비 앞/뒤 커밋 수 • 스테이징되지 않은 변경 • 추적되지 않은 파일 |
git add <파일> (또는 git add .) | 파일을 스테이징 (Git에게 추적하도록 알림) |
git commit -m "커밋 메시지" | 로컬에 스냅샷 저장 (여전히 내 컴퓨터에만) |
git push | 커밋을 원격 저장소에 전송 |
팁: 작업을 시작하기 전에
git status를 실행해 현재 저장소 상태를 확인하라.
원격과 브랜치를 명시적으로 지정하고 싶다면:
git push origin main
.gitignore 파일 추가하기
.gitignore 파일은 Git이 추적하지 않을 파일을 지정한다. 프로젝트 루트에 두고 한 줄에 하나씩 규칙을 적는다.
기본 문법
#– 주석secret.txt– 이 파일만 무시private/– 디렉터리와 그 안의 모든 내용 무시*.txt– 확장자가.txt인 모든 파일 무시log*–log로 시작하는 모든 파일 무시**/logs– 깊이에 관계없이 이름이logs인 모든 디렉터리 무시!important.txt– 이전에 무시된 파일을 다시 포함/config.yaml–.gitignore파일이 위치한 디렉터리를 기준으로 패턴 적용 (파일 시스템 루트가 아님)
버전 관리가 중요한 이유
예를 들어 자동 시장 메이킹(AMM) 시스템을 개발하고 있다고 하자. 코드 버그가 발생하면 회사에 큰 금전적 손실을 초래할 수 있다.
- VCS 없이: 다운타임과 금전적 손실이 심각해질 수 있다. 정상 상태로 쉽게 되돌릴 방법이 없기 때문이다.
- Git 사용 시: 이전 커밋으로 롤백하고 문제를 수정한 뒤 빠르게 재배포할 수 있어 시간과 비용을 절감한다.
버전 관리는 또한 다음을 가능하게 한다:
- 협업: 여러 개발자가 동시에 같은 코드베이스에서 작업할 수 있다.
- 코드 리뷰: 변경 사항을 병합하기 전에 검토하고 승인받을 수 있다.
혼자 프로젝트를 진행하더라도 VCS를 쓰지 않으면 진행 상황을 잃어버리거나 큰 좌절을 겪을 수 있다.
좋은 커밋 메시지 작성법
명