GitHub 저장소에 기존 작업 소스 파일 임포트
신규 GitHub 저장소를 생성해 로컬로 클론 후 소스 파일 수동 추가
가장 간단한 방법이다. 신규 GitHub 저장소를 생성한 후 로컬 작업 저장소로 클론하고, 로컬 작업 저장소에 기존 소스 파일들을 수동으로 추가하고 커밋하고 푸시하면 된다.
수동으로 추가하려는 로컬 작업 소스 폴더 최상위에 '.git' 폴더가 있는 경우, 그러니까 이미 'git 저장소' 폴더인 경우는 아래에서 설명하는 다른 방법으로 소스를 임포트하는 것이 좀더 나을 수 있다. 어떤 이유에서 기존 로컬 git 저장소 자체가 아닌 '현재 작업 폴더'내에 존재하는 파일을 신규 GitHub 저장소에 추가하려면 git에서 저장소를 관리하는 모든 정보를 저장하는 최상위 '.git' 폴더는 제외해야한다.
참고로 로컬 git 저장소 최상위의 '.git' 폴더를 단순히 '삭제'하는 것만으로 해당 git 저장소는 더이상 git 저장소가 아니라 일반 폴더가 된다.
로컬 작업 저장소를 신규 GitHub 저장소에 임포트
기존의 git 로컬 저장소를 신규 GitHub 저장소에 임포트하기 위해서는 다음과 같이 할 수 있다.
신규 GitHub 저장소를 생성한다.
GitHub 저장소에 업로드할 소스 파일이 있는 폴더가 아직 'git 저장소'가 아니면 다음 명령어들을 사용해 로컬 저장소를 설정해준다.
git init git add . git commit -m "<커밋 메시지>"참고로 'git init' 명령어는 현재 폴더를 'git 저장소'로 초기화한다. 'git init' 명령어 실행 완료 후 '.git' 폴더가 생성된 것을 확인할 수 있다. 'git add .' 명령어는 현재 폴더의 모든 파일 및 폴더들을 초기화된 'git 저장소'의 'staging area'에 추가한다. 'git add'전에 '.gitignore' 파일을 생성 후 git 저장소에 추가하지 않을 파일 정보를 설정해두면 불필요한 파일들이 git 저장소에 저장되는 것을 사전에 방지할 수 있다. 'git commit -m "<커밋 메시지>"' 명령어는 'git 저장소'의 'staging area'에 추가된 파일들을 최종적으로 저장소에 커밋한다.
필요시 임포트할 기존 git 로컬 저장소에 GitHub 계정 정보를 설정한다.
git config user.name "<GitHub 사용자 name>" git config user.email "<GitHub 사용자 email>"기존 git 로컬 저장소에 신규 GitHub 저장소를 '원격 저장소'로 추가한다.
git remote add <원격 저장소 참조명> <GitHub 저장소 URL>예를 들어서 'origin'이라는 이름으로 신규 GitHub 저장소를 '원격 저장소'로 추가하려면 다음과 같이 한다.
git remote add origin https://github.com/<GitHub 사용자 name>/<GitHub 저장소 이름>.git참고로 원격 저장소 참조명은 꼭 'origin'일 필요는 없다. 또한 원격 저장소는 2개 이상 추가할 수도 있다. 'origin'이라는 용어는 1개의 원격 저장소와만 연결하는 보통의 경우에 사용하는 관례적인 이름이다.
위 '3' 단계에서 설정한 '원격 저장소'로 git 로컬 저장소의 내용을 푸시한다.
git push <원격 저장소 참조명> <브랜치 이름>예를 들어서 'origin'이라는 이름으로 추가한 원격 저장소에 'master' 브랜치의 내용을 푸시하려면 다음과 같이 한다.
git push origin master참고로 현재 GitHub에서 생성하는 신규 저장소는 더이상 'master' 브랜치를 기본 브랜치명으로 사용하지 않는다. 'main'을 기본 브랜치명으로 사용한다.
GitHub 사이트에서 신규 저장소 생성시 '.gitignore, 라이센스 파일, README' 파일 생성 옵션을 모두 설정하지 않아 아무런 파일이 저장소에 존재하지 않는 상태로 저장소를 생성하고 GitHub 사이트 저장소 페이지에 접근하면 먼저 기술한 내용과 유사한 형태의 '가이드 커맨드'들 제시해준다. 한번 직접 확인해 보는 것이 좋다. '.gitignore, 라이센스 파일, README' 파일 생성 옵션을 하나라도 설정하면 설정한 파일이 신규 저장소에 'Initial commit'으로 커밋되고, GitHub 사이트 저장소 페이지에 접근하면 '가이드 커맨드'들이 제시되지 않고 'Initial commit'된 파일 목록이 표시된다.