Remote Repository(GitHub)를 Local Host PC에 add 하는 방법

2025. 5. 8. 15:31Git/Git 기초

🔗 GitHub의 원격 저장소에 Local 저장소를 연결하는법

1️⃣ GitHub에서 New repository 생성

 

2️⃣ Repository name 설정

 

 

 

 

 

 

Add a README file은 개인 선택!!
만약  선택하고 Creat repositoy할 시 
아래 코드 입력 창이 안뜨고
바로 로컬 저장소가 생성됨!!

 


이름 설정 후 Creat repository

 

3️⃣ Git Bash에 생성된 코드 입력

① …or create a new repository on the command line

  ➤ 로컬에 아무것도 없는 상태에서 처음 Git 프로젝트를 시작할 경우

echo "# HelloWorld" >> README.md
              // README.md에 ""안에 있는 단어 추가 및, README.md파일이 없을시 생성 
              // 그래서!! README.md 파일을 생성하고 싶지 않거나. 이미 GITHUB에서 
              // README.md 파일을 생성한 경우 이코드 생략 가능
git init

git add README.md            // README.md 파일 생성하지 않을 경우 생략가능
git commit -m "first commit" // README.md 파일 생성하지 않을 경우 생략가능

git branch -M main  // 기본 branch를 main으로 강제로 변경하는 명렁여 
                    // 이미 main일 경우 실행하지 않아도 된다!!
                    
git remote add origin https://github.com/HwanSeoPark/HelloWorld.git 
                            //→ 연결할 원격 저장소 주소
git push -u origin main

 

 

순서대로!! 

 

➕ echo "# HelloWorld" >> README.md

→ README.md 파일을 생성하고 싶지 않거나 이미 GITHUB에서 생성했을 경우 생략 가능 

로컬 저장소에서 연결할 디렉토리에서 Git Bash 실행 후

echo "# HelloWorld" >> README.md 명렁여 입력시 README.md 파일이 생성된걸 확인 할 수 있다.

 

git init

git init 코드(현재 디렉토리를 Git이 관리하는 로컬 저장소로 초기화하는 명령어)  입력
→ .git이라는 디렉토리 생성 및 로컬 디렉토리가 main으로 설정된걸 확인 할 수 있다

 

➕ git add README.md
     git commit -m "first commit"

    echo "# HelloWorld" >> README.md 명렁어 생략했을 시 생략 가능 

git status 명렁어를 통해 파일이 untracked 상태인걸 확인

git addgit commit 명령어를 통해 README.md 파일을
untracked → staged → unmodified (변경 없음)상태로 만들어서 원격 저장소에 공유할 수 있도록 만든다.

 

git remote add origin 원경저장소(GITHUB 저장소) 주소

원격 저장소의 주소를 git remote add origin 명렁어에 복사하여 입력

Loacl Host Pc에서 원격 저장소의 주소가 연결된 것을 확인

 

git push -u origin main

      → 단 한번만(저장소 연결때 마다) 입력하는 명렁어,
          이후로는 git push/pull만 써도 전달 된다!!

git push -u origin main 명렁어 입력시 Local Pc와 원격 저장소가 연결된 것을 확인 할 수 있다.

 

GItHUB에 다시 돌아가서 새로고침 시 저장소가 생성된것을 확인 할 수 있다

 

② …or push an existing repository from the command line

  ➤ 이미 로컬에서 Git 저장소를 초기화하고, 작업과 커밋도 끝낸 상태일 경우

  • 로컬에서 이미 git init, commit 등 작업 다 해둔 상태
  • GitHub에 빈 저장소만 만든 후, 그걸 원격 저장소로 연결하려는 경우     
git remote add origin https://github.com/HwanSeoPark/helloremoterepository.git
git branch -M main
git push -u origin main

 

⚠️ 원격 저장소와 로컬 저장소의 히스토리가 다를경우 ⚠️

원격 저장소에 로컬에 없는 커밋이 있는 상태에서 git push를 하려고 하면 GIt이 충돌을 방지하려고 거부한다

 

🛠️ 해결 흐름

git fetch origin main 

  • GitHub(원격 저장소)의 커밋 기록을 로컬로 가져오기만 하는 명렁어
  • 병합은 아직 하지 않음
  • origin/main 브랜치가 로컬에 생기지만, 로컬 main 브랜치는 그대로 유지됨

② git merge origin/main --allow-unrelated-histories

  • 원격 저장소의 브랜치와 로컬 브랜치를 병합
  • 두 브랜치의 커밋 이력이 완전히 다르더라도 강제로 병합 허용

③ 위의 두 명렁어 후 push 해주기

 

 

순서대로!!

➕ git fetch origin main

git fetch 명렁어를 통해 원격 저장소의 커밋 이력을 가져오기만 함

 

git merge origin/main --allow-unrelated-histories

git merge origin/main --allow-unrelated-histories

이 명령어는 두 Git 저장소의 히스토리가(commit 이력)가 서로 전혀 연결되어 있지 않아도
강제로 병합(merge) 하도록 허용하는 명렁어

 

git merge origin/main --allow-unrelated-histories 명렁어로 강제 병합

 

➕ git push

문제가 해결 된 것을 확인!!

 

🤔 만약, 로컬과 원격 저장소의 같은 파일내에서 커밋 이력이 다를 경우는? 

💬 예시

L) 원격의 README R) 로컬의 README

git push시 오류 발생

 

git fetch origin main 명렁어로 원격 저장소의 커밋이력 가져오기


git merge origin/main --allow-unrelated-histories 명렁어 실행시

원격과 로컬의 README.md 파일에서 커밋이력이 달라 오류 발생

 

🔧 해결 절차 (충돌 처리 순서)

▶️ 충돌 난 파일 열기(예시의 경우 README.md)



HEAD는 로컬 저장소의 내용

======= 는 구분선

origin/main은 원격 저장소의 내용

▶️ 원하는 대로 수동으로 수정

 

README.md의 파일 내용을 직접 수정해야 한다

 

▶️ 수정 후 충돌 해결 완료 처리

git add .
git commit -m "원하는 문구 작성"


git merge origin/main --allow-unrelated-histories 명령어 다시 입력해 보면

현재 로컬과 원격 저장소가 동기화되어 있어서 병합 할 내용이 더 이상 없다는 것을 확인 할 수 있다
즉, 이미 git merge origin/main --allow-unrelated-histories로 병합을 완료했고,
이제 두 저장소는 같은 히스토리를 공유하고 있으므로 추가 병합이 필요하지 않다는 상태다.

 

▶️ 병홥 완료 후 푸시

git push

 

push 후에 두 저장소의 README.md를 확인 해 보면

두 저장소의 README.md가 수정한 내용으로 수정된 것을 확인 할 수 있다!!

'Git > Git 기초' 카테고리의 다른 글

GIT의 기초 실습  (0) 2025.12.15
GIT의 master와 main 차이  (0) 2025.12.15
Git의 기초 2.5 — 리모트 저장소  (0) 2025.12.15
Git의 기초 — 수정하고 저장소에 저장하기  (0) 2025.12.15
GIT 저장소 만들기  (0) 2025.12.15