지금까지는 git을 로컬 저장소(Local Repository), 즉 내 컴퓨터 작업환경에서만 사용해왔습니다. 지금부터는 git을 통하여 코드를 원격저장소에 보관하여 백업하고, 또 협업하는 방법에 대해서 알아보도록 하겠습니다.
원격 저장소(Remote Repository)
수많은 전세계의 개발자들이 원격저장소를 사용하는 이유는 다음과 같습니다.
- 프로젝트 코드를 안전히 보관하고 백업하기 위해서
- 다른 사람과 협업을 편리하게 하기 위해서
이러한 이유들로 사람들은 원격저장소를 사용합니다. 원격저장소의 종류로는 Github, Gitlab, Bitbucket 등이 있지만 그 중 가장 많이 사용되는 원격저장소인 github에 온라인 Repository를 만들어서 코드를 보관해보도록 하겠습니다.
Github에서 저장소 생성하기
먼저 github 사이트에 들어가서 회원가입 및 로그인을 해줍니다. 그리고 Repositories 창으로 들어가 "초록색 New 버튼"을 클릭해줍니다.
그리고 필요에 맞게 여러가지 옵션들을 선택해줍니다. 그리고 Create repository 버튼을 눌러 Repository를 생성합니다.
- Repository name: Repository 이름 (필수 사항)
- Description: Repository에 대한 짧은 설명 (선택 사항)
- Public / Private: Repository 공개 및 비공개 여부 (공개로 기본 세팅)
- Add a README file: Repository에 대한 구체적인 설명을 적는 마크다운 파일 생성 여부 (선택 사항)
- Add .gitignore: .gitignore 파일 생성 여부, 원하는 개발환경을 선택 가능하다. (선택 사항)
- Choose a license: Repository에 오픈 소스 라이센스 포함 여부 (선택 사항)
원격 Repository를 생성하고 나면, 자신이 작업한 Local Repository (로컬 저장소)와 어떻게 연결할 것인지에 대한 방법을 설명해줍니다.
첫 번째 방법은 터미널에서 새로운 저장소를 만드는 방법으로, 다음과 같은 방식으로 이루어집니다.
# "forgit"이라는 제목의 README.md 파일 생성
echo "# forgit" >> README.md
# Git 초기화
git init
# README.md 파일을 스테이징
git add README.md
# 첫 번째 커밋 생성
git commit -m "first commit"
# 브랜치를 main으로 변경
# Github는 master브랜치 이름을 모두 main으로 변경할 것을 권장합니다.
git branch -M main
# 원격 저장소에 연결
git remote add origin https://github.com/kangdy25/forgit.git
# 로컬의 main 브랜치를 원격 저장소의 main 브랜치로 푸시
git push -u origin main
두 번째 방법은 이미 존재하는 로컬 저장소에서 푸시하는 방법이며, 다음과 같은 방식으로 이루어집니다.
# 원격 저장소에 연결
git remote add origin https://github.com/kangdy25/forgit.git
# 브랜치를 main으로 변경
# Github는 master브랜치 이름을 모두 main으로 변경할 것을 권장합니다.
git branch -M main
# 로컬의 main 브랜치를 원격 저장소의 main 브랜치로 푸시
git push -u origin main
세 번째 방법은 다른 버전 관리시스템에서 관리되는 프로젝트 코드를 Git으로 가져와서 새로운 Git 저장소로 이전하여 관리하는 방법입니다.
위의 3가지 방법 중 주로 1번 또는 2번 방식을 많이 사용하게 됩니다. 이 과정을 마치면 원격 저장소와 로컬 저장소 연결은 끝이 납니다.
git remote
원격 저장소와 로컬 저장소를 연결하는 과정 중 "git remote"라는 명령어가 나오는데, 이에 대해서 더욱 자세히 알아보도록 하겠습니다. git remote는 Git에서 원격 저장소를 관리하는 명령어를 말하며, 이를 통하여 원격 저장소를 추가, 조회, 제거 등의 작업이 가능하며 원격 저장소에 대한 정보를 확인할 수 있습니다.
# 원격 저장소 조회
git remote -v
# 원격 저장소 추가
git remote add <이름> <URL>
# 원격 저장소 제거
git remote remove <이름>
# 원격 저장소 이름 변경
git remote rename <이전 이름> <새로운 이름>
# 원격 저장소 URL 수정
git remote set-url <이름> <새로운 URL>
이때 <이름>은 뒤따라 오는 "https://~~"와 같은 URL 주소를 짧게 축약하여 사용할 수 있는 일종의 변수와 같은 문법입니다. 일반적으로 origin을 많이 사용하며, 원격 저장소를 추가할 때 다음과 같은 방식으로 사용하게 됩니다.
git remote add origin https://github.com/kangdy25/forgit.git
git push
대망의 git push 명령어입니다. git push는 결국 로컬저장소에서 작업한 코드를 원격 저장소로 업로드할 때 사용하는 명령어입니다.
# 원격 저장소로 푸쉬
git push -u origin main
# -u 옵션을 붙인 이후로는 이 명령으로 푸쉬가 가능함
git push
위의 명령어는 로컬 저장소의 main 브랜치를 origin이라 이름하는 원격저장소 주소에 업로드하라는 뜻입니다. 이때, 꼭 main 브랜치가 아니어도 되며 다른 브랜치도 올릴 수 있습니다. -u 옵션은 해당 로컬 브랜치와 원격 브랜치를 연결할 때 사용하는 옵션으로 이렇게 연결하면 그 이후에는 "git push"만으로도 푸쉬가 가능해집니다.
.gitignore와 git push
.gitignore 파일을 통해서 git push를 할 때 원격저장소에 보관할 코드와 보관하지 말아야할 코드를 분리시킬 수 있습니다. .gitignore 파일 작성법은 여기에서 확인하실 수 있습니다.