Git과 GitHub
1. Git
Git은 소스 코드의 변경 이력을 효과적으로 관리할 수 있도록 도와주는 분산 버전 관리 시스템입니다. 개발자는 Git을 이용해 코드의 이전 상태로 되돌리거나, 여러 사람이 동시에 작업해도 충돌 없이 협업할 수 있으며, 브랜치를 활용해 새로운 기능을 실험적으로 개발한 후 메인 프로젝트에 병합할 수 있습니다. Git은 로컬 저장소와 원격 저장소를 구분하여 인터넷 없이도 작업할 수 있고, GitHub와 같은 서비스와 연동하여 팀 프로젝트를 체계적으로 관리할 수 있는 강력한 도구입니다.
1. 버전관리
버전관리는 소프트웨어 개발이나 문서 작성 등에서 파일의 변경 이력을 체계적으로 기록하고 관리하는 방법입니다. 이를 통해 언제, 누가, 어떤 변경을 했는지 추적할 수 있으며, 문제가 발생했을 때 이전 버전으로 되돌리거나 변경 내용을 비교할 수 있습니다. 특히 여러 사람이 동시에 작업할 경우 충돌을 방지하고, 각자의 작업을 병합해 하나의 완성된 결과물로 만드는 데 중요한 역할을 합니다. 대표적인 버전관리 도구로는 Git, SVN(Subversion), Mercurial 등이 있으며, 그 중 Git은 현재 가장 널리 사용되고 있습니다.
2. Git 장점
분산형 버전 관리
- 로컬 저장소만으로도 대부분의 작업이 가능하여 인터넷 없이도 작업 가능
- 중앙 서버가 없어도 이전 기록 확인, 커밋, 브랜치 생성 등이 가능
강력한 브랜치 기능
- 브랜치를 쉽게 생성하고 병합할 수 있어 기능 개발, 버그 수정을 독립적으로 진행 가능
- 실험적인 작업도 안전하게 분리하여 메인 프로젝트에 영향 없이 테스트 가능
효율적인 협업
- 여러 명이 동시에 작업해도 변경 이력 추적과 충돌 해결 도구를 통해 안정적으로 병합 가능
- GitHub, GitLab 등과 연동하여 Pull Request, 코드 리뷰, 이슈 관리 등 협업 기능 지원
변경 이력 추적 및 되돌리기
- 누가 언제 어떤 코드를 수정했는지 정확히 기록
- 문제가 발생하면 이전 상태로 손쉽게 되돌릴 수 있음 (Rollback, Revert)
성능과 속도
- 대부분의 작업이 로컬에서 이루어지기 때문에 빠른 속도로 커밋, 로그 조회, 브랜치 변경 가능
오픈소스 및 무료
- 누구나 무료로 사용할 수 있으며, 다양한 도구(Git Bash, VSCode, Sourcetree 등)와 함께 사용 가능
3. 설치
- 구글에서 "git 설치" 검색 또는 https://git-scm.com
- 왼쪽 메뉴에서 Downloads 클릭
- 오른쪽 모니터 모양 다운로드 클릭
- 윈도우의 경우 64-bit Git for Windows Setup. 클릭 후 다운로드 및 설치(기본설정)
2. Git 명령어
1. 프로젝트 디렉토리 내에 로컬 저장소를 생성
git init
2. git 버전 관리할 파일을 선택(stage에 올림)
git add index.html
3. 하나의 버전으로 만들기
git commit -m "index.html을 커밋"
✔ 만약 아래와 같이 에러가 발생한 경우
Author identity unknown
*** Please tell me who you are.
Run
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
to set your account's default identity.
Omit --global to set the identity only in this repository.
fatal: unable to auto-detect email address (got 'Administrator@DESKTOP-HUJUVSS.(none)')
아래 명령어를 입력하여 해결
git config --global user.email "ryuzy@kakao.com"
git config --global user.name "류정원"
확인
git config user.email
git config user.name
4. 로그 확인하기
git log
5. 여러 파일을 함께 선택(stage에 현재 디렉토리에 있는 변화된 모든 파일)
git add .
6. 선택된 여러 파일을 커밋
git commit -m "현재 디렉토리에 있는 모든 파일을 커밋"
3. Github
GitHub는 Git을 기반으로 한 온라인 코드 저장소 및 협업 플랫폼으로, 개발자들이 소스 코드를 업로드하고 공유하며 협업할 수 있도록 도와주는 서비스입니다. GitHub를 사용하면 버전 관리는 물론, 브랜치 관리, 이슈 추적, Pull Request를 통한 코드 리뷰, 팀 단위의 협업 등이 가능해집니다. 오픈소스 프로젝트뿐만 아니라 개인 및 기업 프로젝트에도 널리 사용되며, 웹 기반 인터페이스를 통해 복잡한 Git 명령 없이도 주요 기능을 손쉽게 사용할 수 있습니다. GitHub는 개발자들의 포트폴리오 공유, 오픈소스 기여, CI/CD 자동화 등 다양한 용도로 활용되는 대표적인 개발 플랫폼입니다.
1. 깃허브 가입 후 Create repository 버튼을 클릭하여 repository 만들기
2. 로컬 저장소에서 github 원격 저장소 주소를 설정
git remote add origin https://github.com/ryuzyproject/test.git
3. 생성한 커밋(버전들)을 github로 전송(푸시)
git push -u origin master
만약 403 Permission Denied 에러가 발생한 경우(GitHub 저장소에 접근 권한이 없는 사용자가 push를 시도했기 때문에 발생합니다.)
remote: Permission to projectryuzy/test.git denied to ryuzyproject.
Windows 자격 증명 관리자에서 삭제
제어판 → 사용자 계정 → 자격 증명 관리자 → Window 자격증명 → 일반 자격 증명에서 github.com 항목 삭제
-u
-u 옵션을 사용하면 로컬 브랜치와 원격 브랜치의 연결(추적)을 설정해줍니다. 이후에는 브랜치 이름 없이 간단히 git push나 git pull만 입력해도 자동으로 origin/master와 연결됩니다.