본문 바로가기
프로그래밍/Git

로컬에서 작업한 코드를 Github에 처음 올리는 방법!

by 허구의 2025. 6. 16.
728x90

개발할 때 Git을 이용해서 관리하거나 협업을 해야하는 상황이 많이 있습니다. 하지만 막상 로컬에서 개발한 프로젝트를 처음으로 Github에 업로드하려고 하면 그 과정을 매번 까먹어서 이렇게 기록합니다!!


1. Git 저장소 초기화

먼저 Git을 사용할 프로젝트 폴더로 이동한 후, 해당 폴더를 Git 저장소로 초기화합니다.

cd /path/to/your/project
git init

 

💡 참고: 아래와 같은 메시지가 나올 수 있습니다.

힌트: Using 'master' as the name for the initial branch.
This default branch name is subject to change. 
To configure the initial branch name to use in all of your new repositories, which will suppress this warning, call:
git config --global init.defaultBranch <name>
Names commonly chosen instead of 'master' are 'main', 'trunk' and 'development'. 
The just-created branch can be renamed via this command:
git branch -m <name>

 

이는 Git이 기본 브랜치로 master를 사용하고 있지만, 요즘은 더 중립적인 이름인 main을 권장한다는 안내입니다. Git 2.28 이상에서는 기본 브랜치 이름을 설정할 수 있습니다:

git config --global init.defaultBranch main

 

이렇게 설정하면 이후 git init 시 기본 브랜치 이름이 자동으로 main이 됩니다.


2. Github에서 새로운 리포지토리 생성

  1. Github의 우측 상단의 + 버튼을 눌러 New repository를 클릭합니다.
  2. 원하는 리포지토리 이름을 입력하고 README.md는 생성하지 않고 리포지토리를 만듭니다.

리포지토리가 생성되면 https://github.com/사용자명/리포지토리명.git 형태의 URL이 제공됩니다. 이 URL을 복사해 둡니다.


3. 원격 저장소(origin) 연결

로컬 저장소를 GitHub 리포지토리와 연결합니다.

git remote add origin https://github.com/사용자명/리포지토리명.git

 

아래 명령어를 통해 연결이 제대로 되었는지 확인할 수 있습니다!

git remote -v

4. 커밋 준비 및 커밋 수행

현재 디렉토리의 모든 파일을 Git이 추적하도록 하고, 이를 첫 번째 커밋으로 저장합니다.

git add .
git commit -m "Initial commit"

 

add .은 모든 파일을 추가하는 의미이고, commit은 현재 상태를 기록하는 스냅샷을 만드는 명령입니다.


5. 브랜치 이름 변경 (권장)

GitHub의 기본 브랜치는 main이기 때문에, 로컬 브랜치도 일치시켜주는 것이 좋습니다.

git branch -M main

 

💡 참고:

힌트: Using 'master' as the name for the initial branch...

 

위에서 언급했듯이, 이 메시지는 Git이 기본 브랜치로 master를 설정했지만, 다른 이름(예: main)을 선호하는 경우 변경하라는 의미입니다. git branch -M main 명령으로 브랜치 이름을 바꿀 수 있습니다.


6. GitHub로 푸시 (업로드)

이제 로컬 저장소의 커밋을 GitHub로 업로드합니다.

git push -u origin main

 

에러 사례: 만약 다음과 같은 메시지가 나온다면, 로컬에는 없지만 원격에는 있는 커밋이 있어서 Git이 충돌을 방지하기 위해 푸시를 막는 것입니다.

힌트: 리모트에 로컬에 없는 사항이 들어 있으므로 업데이트가 거부되었습니다.
이 상황은 보통 또 다른 저장소에서 같은 저장소로 푸시할 때 발생합니다. 
푸시하기 전에 ('git pull ...' 등 명령으로) 리모트 변경 사항을 먼저 포함해야 합니다.
자세한 정보는 'git push --help'의 "Note about fast-forwards" 부분을 참고하십시오.

 

 

해결 방법:

git pull --rebase origin main
git push origin main

 

이렇게 하면 원격의 변경사항을 먼저 통합한 뒤 푸시하게 되어 에러 없이 업로드할 수 있습니다.

 

처음 업로드하는 과정이라면 자동으로 생성된 파일(예를들어 README.md) 때문일 수 있습니다.
따라서, 강제로 덮어씌우고 싶다면 아래처럼도 가능합니다.

git push --force origin main

※ 단, 협업 환경에서는 다른 사람의 커밋을 지우게 될 수 있으므로 추천하지 않습니다.

 

감사합니다.

728x90