로컬 파일 깃헙에 백업하기 / master 의 내용 main 에 강제로 덮어씌우기

이라운·2022년 7월 26일
0
post-thumbnail

로컬프로젝트 깃헙에 백업하기

로컬에서 진행하던 프로젝트를 깃허브에 올리고 싶은 경우가 있다.
이때는 그냥 빈 폴더 만들어서 git clone 하는 것이 아니니까 그 방법을 정리해 두려고 한다.

이번에 내가 올릴 프로젝트는 벨로그에 쓸 공부 필기 내용이다.
vscode 로 프로그래밍 강의 내용을 필기하는데, velog 에 올릴 때는 이 필기를 거의 그대로 가져다 쓰고 있다.
그래서 이왕 올리는 김에 그냥 잔디관리도 할겸 깃허브에 올리기로 마음먹었다.

먼저 현재 백업하고 싶은 로컬 폴더로 간다.
그리고 git bash here 를 클릭한다.

cmd 창에서 아래의 명령어를 입력하여 깃 저장소를 생성한다.
git init
이후 폴더에 들어가면 .git 이라고 적혀있는 폴더를 볼 수 있다.

전체를 올릴거라면
git add .

특정 파일이나 폴더를 올릴거라면
git add (파일명 또는 폴더명)
을 입력해준다.

그리고 커밋메시지를 작성해준다.
메세지를 작성하지 않으면 푸쉬를 할 수 없기 때문에 꼭 작성해준다.
git commit -m "메세지 적기"

다음 깃허브의 저장소에 보면 아래사진 처럼 HTTPS 코드링크를 복사할 수 있다. 버튼을 눌러서 쉽게 복사한다.

그리고 다시 cmd 창으로 돌아와서
git remote add origin (업로드할 레포지토리 주소)
이렇게 연결한다.

하고 나면 아무런 변화가 없을텐데, 확인하기 위해서는
git remote -v 라고 하면 된다.

git 공식문서 에 따르면 내 현재 로컬이 연결되어 있는 리모트 깃 레포의 주소를 확인할 수 있다. 연결하려던 주소가 보인다면 오케이.

여기서 origin이라는 것을 볼 수 있을텐데, 깃에서 origin 은 원격 저장소를 의미한다.

이렇게 연결까지 되었으면 푸시를 하면된다
git push origin master
앞에서 말했듯 origin 은 원격 저장소를 뜻하고 master 는 현재 내가 있는 가장 기본 브랜치이다. 즉, 원격 저장소의 master 라는 브랜치에 올려줘 라는 명령어이다.

master의 내용 main 에 강제로 덮어씌우기

라고 알고 있을 터인데, 보니까 내 레포에 default branch 는 main 이었다. 더 알아보니 원래는 master 를 기본 브랜치로 쓰는 경우가 많았지만 최근들어 기본 브랜치를 main 으로 자동 생성하는 경우가 많아지고 있다고 한다. 왜냐하면 master 라는 단어가 노예제를 연상시키기 때문이라고 한다.

지금 내가 올리는 자료는 프로젝트가 아닌, 단순 필기노트 자료라서 브랜치 나눠가면서까지 관리할 필요는 없기에 기본 브랜치로 합쳐주겠다.

git checkout master
git branch main master -f
git checkout main
git push origin main -f

위의 명령어를 설명하자면,

  • 현재 브랜치를 master로 옮겨주고
  • main 이라고 하는 브랜치에 master 를 덮어씌우는 것인데, -f 가 적혀있어서 이미 main 이라고 하는 브랜치가 존재하든 말든 강제로 덮어씌운다는 뜻이다.
  • 이후 main 브랜치로 옮겨오고
  • main 에 옮겨진 기존 mater 의 커밋 내용을 원격 저장소에 올린다. 이것도 -f를 쓰는 이유는 이미 원격 저장소의 main 에 커밋된 히스토리에 따라 충돌이 발생해 푸쉬를 거부하는 경우가 있는데, 이에 상관없이 푸시를 강제하기 위해서이다.

출처

그리고 나면 master 브랜치는 더 이상 쓸 필요없으니
git push origin -d master
라는 명령어로 깔끔하게 없애준다.

profile
Programmer + Poet = Proet

0개의 댓글