Post

로컬 폴더를 GitHub 원격 저장소에 연결하는 방법

로컬 폴더를 GitHub 원격 저장소에 연결하는 방법

Summary

이미 작업하던 로컬 폴더를 GitHub 리포지토리와 연동하고 싶으신가요?

이 글에서는 로컬에서 먼저 작업을 시작한 경우(파일, 코드 등이 이미 존재하는 상태), GitHub 원격 저장소를 생성하고 안전하게 연결하는 방법을 단계별로 안내합니다!


Step 1 : 로컬 폴더에서 Git 시작하기

가장 먼저, 프로젝트가 있는 로컬 폴더를 Git이 관리할 수 있도록 설정해야 합니다.

(1) 폴더 및 파일 생성

사용자가 원하는 경로에 폴더를 생성한 후, 폴더의 경로에 맞춰 Cursor나 VSCode 등 원하는 코드 에디터를 실행합니다.

그 다음, 주피터 노트북과 같은 파일을 하나 생성해줍니다.

(2) Git 초기화

터미널에서 다음 명령어를 입력하여 Git을 초기화 해줍니다.

1
git init

Initialized empty Git repository in {내 폴더 경로}/.git/ 이라는 메시지가 나타나면 성공입니다. 폴더 내에 Git의 기록과 설정이 담기는 .git 이라는 폴더가 생성됩니다.

(3) 기본 설정 확인

Git을 처음 사용하는 경우, 사용자 이름과 이메일이 등록되어 있는지 확인해야 합니다.

1
git config --list

출력된 목록에 user.nameuser.email 이 없다면, 아래 명령어로 설정해주세요. 이 정보는 누가 커밋(변경사항 저장)을 했는지 기록하는 데 사용됩니다.

localglobal 의 차이점

  • 해당 프로젝트(현재 폴더 경로)에만 적용
1
2
git config --local user.name "GitHub 사용자 이름"
git config --local user.email "GitHub 이메일 주소"
  • 모든 Git 프로젝트에 적용
1
2
git config --global user.name "GitHub 사용자 이름"
git config --global user.email "GitHub 이메일 주소"

Step 2 : GitHub 원격 저장소 생성 및 연결

이제 로컬 폴더와 연결할 원격 저장소(Repository)를 GitHub에 만들 차례입니다.

(1) GitHub 리포지토리 생성

GitHub에 접속하여 새 리포지토리(New Repository)를 만듭니다.

이때 README.md 파일을 추가하는 옵션을 반드시 체크합니다. 필요하다면 라이선스(License)도 추가할 수 있습니다.

(2) 원격 저장소 주소 복사

생성된 리포지토리 페이지에서 “Code” 버튼을 누르고 “HTTPS” 형식의 URL을 복사합니다.

(3) 원격 저장소 연결

터미널로 돌아와 아래 명령어를 입력하여 로컬 저장소에 원격 저장소를 연결합니다.

1
git remote add origin {복사한 URL을 붙여넣기}

연결이 잘 되었는지 확인하려면 git remote -v 명령어를 실행하세요. fetch와 push 주소가 정상적으로 출력되면 성공입니다.


Step 3 : 로컬과 원격 저장소 상태를 동기화

현재 로컬 폴더에는 작업 파일들이, GitHub에는 README.md 파일이 있어 서로 상태가 맞지 않습니다. 이 문제를 해결하고 안전하게 두 저장소를 합쳐야 합니다.

(1) 원격 저장소 정보 가져오기

먼저 GitHub에 있는 파일 정보를 로컬로 가져옵니다.

1
git fetch origin main

main은 기본 브랜치 이름입니다. 만약 다른 이름(예: master)을 사용했다면 해당 이름으로 변경해주세요. 이 명령어를 실행하면 From {URL} * branch main -> FETCH_HEAD 와 같은 메시지가 나타납니다.

(2) 가져온 정보 병합하기

이제 가져온 내용을 로컬 폴더에 병합( merge )합니다.

1
git merge FETCH_HEAD

이 명령어를 실행하면 GitHub에 있던 README.md와 LICENSE 파일이 로컬 폴더로 들어오게 됩니다. 이제 로컬 폴더와 원격 저장소의 기본 상태가 동일해졌습니다.

💡 왜 pull을 사용하지 않는가?

git pullfetchmerge 를 한 번에 실행하는 편리한 명령어지만, 두 저장소의 기록이 다를 때 사용하면 충돌이 발생하거나 기록이 꼬일 수 있습니다. fetchmerge 하는 방식은 상태를 먼저 확인하고 병합할 수 있어 더 안전합니다.


Step 4 : .gitignore로 불필요한 파일 관리

이제 git status 명령어를 실행해보면, 원격 저장소에는 없고 로컬에만 있는 파일들이 “Untracked files” 목록에 나타납니다. 이 파일들은 앞으로 git addcommit 을 통해 원격 저장소에 올릴 수 있는 상태가 된 것입니다.

하지만 모든 파일을 원격 저장소에 올릴 필요는 없습니다. 개인정보, 보안 키, 용량이 큰 파일, 각종 캐시 파일 등은 제외하는 것이 좋습니다. 이때 .gitignore 파일을 사용합니다.

(1) .gitignore 파일 생성

프로젝트 폴더 내에 .gitignore 라는 이름의 파일을 생성합니다.

(2) 규칙 생성 및 추가

gitignore.io 사이트를 활용하면 편리하게 설정할 수 있습니다. 자신의 운영체제(macOS, Windows), 개발 환경(VisualStudiocode), 프로그래밍 언어(Python) 등을 선택하면 자동으로 규칙을 만들어 줍니다.

  • 추천 키워드 예시: macos, visualstudiocode, python, jupyternotebooks, vim, venv, dotenv, git

생성된 내용을 복사하여 .gitignore 파일에 붙여넣고, 그 외에 개인적으로 추적을 원치 않는 파일이나 폴더 이름을 추가해주면 됩니다.


이제 로컬 폴더와 GitHub 원격 저장소의 연동 및 초기 설정이 모두 끝났습니다. 앞으로는 git add, git commit, git push 명령어를 사용하여 로컬의 변경 사항을 안전하게 GitHub에 기록하고 관리할 수 있습니다.

This post is licensed under CC BY 4.0 by the author.