GitHub를 계속 사용하다 보니, 한 번쯤 정리해두면 좋겠다는 생각이 들어 이 글을 작성하게 되었습니다.
참고로 이 글은 Mac 환경을 기준으로 작성했습니다.
들어가기 전에, Git과 GitHub의 차이부터 간단히 알아보겠습니다.
Git으로 관리한 프로젝트를 원격 저장소에 올려 공유할 수 있게 해주는 서비스입니다.그렇다면 왜 Git을 사용할까요?
버전 관리가 가능해집니다.
어떤 파일이 언제, 왜 변경되었는지 쉽게 확인할 수 있습니다.
효율적으로 백업할 수 있습니다.
파일을 여러 개 복사해둘 필요 없이 변경 이력을 기준으로 관리할 수 있습니다.
협업이 쉬워집니다.
여러 명이 같은 프로젝트를 함께 작업하고 변경 사항을 공유할 수 있습니다.
Git을 처음 사용할 때는 사용자 정보를 먼저 설정하는 것이 좋습니다.
이 정보를 설정해야 커밋 기록에 누가 작업했는지 올바르게 남습니다.
git config --global user.name "깃허브 사용자 이름"
git config --global user.email "깃허브 이메일"
설정이 잘 되었는지 확인하려면 아래 명령어를 입력합니다.
git config --list
올바르게 설정되었다면 아래와 같이 입력한 사용자 이름과 이메일이 표시됩니다.

이제 기본 준비는 끝났습니다.
이제 프로젝트 폴더를 Git 저장소로 만들어보겠습니다.
git init
이 명령어를 실행하면 현재 폴더 안에 .git 디렉터리가 생성됩니다.

이제부터 해당 폴더는 Git이 변경 이력을 관리하는 저장소(Repository) 가 됩니다.
참고로 실제 작업 중인 파일들이 있는 공간은 보통 작업 디렉터리(Working Directory) 라고 부릅니다.
이제 GitHub에서 원격 저장소를 만들어보겠습니다.
먼저 GitHub에 로그인한 뒤, 본인 페이지에서 Repositories 메뉴로 이동합니다.

Repositories 페이지에 들어가면 아래와 같이 New 버튼이 보입니다.
이 버튼을 눌러 새로운 저장소를 생성할 수 있습니다.


저장소 이름, 공개 여부(Public / Private) 등은 필요에 맞게 설정하시면 됩니다.
저장소를 생성하고 나면, GitHub에서 원격 저장소를 어떻게 연결할지 안내해줍니다.

이제 작업 중인 프로젝트를 GitHub에 올려보겠습니다.
아래 예시는 새로 만든 빈 저장소에 처음 업로드하는 상황을 기준으로 합니다.
먼저 작업할 폴더에서 git init을 실행해 로컬 저장소를 초기화합니다.

그다음 아래 명령어를 순서대로 입력합니다.
git init
git remote add origin [원격 저장소 URL]
git branch -M main
git add .
git commit -m "첫 커밋 메시지"
git push -u origin main
저장소를 초기화한 뒤의 모습은 아래와 같습니다.

각 명령어의 의미는 다음과 같습니다.
git init
현재 폴더를 Git 저장소로 초기화합니다.
git remote add origin [원격 저장소 URL]
로컬 저장소와 GitHub 원격 저장소를 연결합니다.
git branch -M main
기본 브랜치 이름을 main으로 설정합니다.
git add .
현재 폴더의 변경된 파일을 한 번에 스테이징합니다.
여기서 .은 현재 디렉터리 아래의 파일 전체를 의미합니다.
git commit -m "첫 커밋 메시지"
스테이징한 변경 사항을 하나의 커밋으로 저장합니다.
git push -u origin main
로컬의 main 브랜치를 GitHub 원격 저장소로 업로드합니다.
브랜치를 만든 뒤 git push를 실행하면 아래와 같이 업로드가 진행됩니다.

업로드가 정상적으로 완료되면 GitHub 저장소 페이지에서도 파일이 올라간 것을 확인할 수 있습니다.

위 방식은 GitHub에서 비어 있는 저장소를 만든 뒤 처음 업로드하는 경우에 잘 맞습니다.
다만 GitHub 저장소를 만들 때 README, .gitignore, 라이선스 파일 등을 함께 생성했다면
원격 저장소에 이미 파일이 하나 들어 있는 상태이므로, 바로 push할 때 충돌이 날 수도 있습니다.
이 경우에는 먼저 pull을 하거나, 저장소를 만들 때 초기 파일 생성을 하지 않는 방식으로 진행하면 조금 더 수월합니다.
이번 글에서는 GitHub에서 처음 Repository를 만들고,
로컬 프로젝트를 원격 저장소에 업로드하는 과정까지 정리해보았습니다.
처음에는 명령어가 낯설게 느껴질 수 있지만, 몇 번 직접 해보면 흐름이 자연스럽게 익숙해집니다.
사용하다 보면 “왜 업로드가 안 되지?” 같은 궁금증이 생길 수 있는데,
다음 글에서는 Git과 GitHub가 어떤 원리로 동작하는지 조금 더 자세히 정리해보겠습니다.