본문 바로가기
Tools/Git

[Git] GitHub 저장소 생성 및 소스코드 올리기

by A6K 2021. 2. 15.

로컬에서 작업중인 git 저장소를 GitHub에 올려 다른 개발자들과 공유할 필요가 있을 수 있다. 우선 코드를 업로드할 깃허브 저장소부터 생성해보자.

1. 깃허브 저장소 생성

깃허브에 접속한다. 깃허브에 로그인을 하면 우측 상단에 + 모양의 버튼이 있다. 이 버튼을 클릭하면 'New repository' 항목을 볼 수 있다. 클릭해서 새 저장소를 만드는 페이지로 간다.

새로만들 저장소의 정보를 입력한다. Repository name에 입력한 정보는 저장소의 주소로 사용된다. Description 항목은 저장소에 대한 간단한 설명을 입력하는 곳이다.

Public과 Private은 저장소의 공개 여부를 설정하는 곳으로 Public 저장소는 모두에게 공개된다. (오픈소스) Private 저장소는 저장소 소유자 혹은 관리자가 지정한 사용자만 접근할 수 있다.

'Create repository' 버튼을 눌러서 저장소를 생성한다.

저장소가 생성되었다.

2. 로컬 저장소 생성

이제 터미널을 열거나 윈도우의 경우 git bash를 열어서 깃허브로 업로드할 저장소에 작업을 진행한다.

$ ls
README.md    a.c

우선 현재 작업 디렉토리에 README.md 파일과 a.c 파일만 존재한다고 하자. 이 디렉토리를 깃허브 저장소에 업로드해보겠다.

$ git init
Initialized empty Git repository in /Users/user/work/test/.git/

git init 명령을 이용해 로컬 깃 저장소를 만들어준다. .git이라는 디렉토리가 생성된 것을 확인할 수 있다. git에서 사용하는 여러 메타 정보들이 저장되는 디렉토리로 고급사용자가되면 제법 자주 드나들게 되는 곳이다. 일단 지금은 그냥 넘어가도록하겠다.

로컬 저장소에 파일 추가

git status 명령을 이용해 현재 로컬 저장소의 상태를 확인한다. 'Untracked files'라는 부분에 빨간색으로 파일 이름들이 표기되는 것을 볼 수 있다. 로컬 저장소에 git에의해 관리되지 않는 파일들이 존재한다는 의미다.

친절하게도 git add 을 통해 추가할 수 있다고 안내가 되어있다.

$ git add .

추가해준다. git add . 명령은 현재 디렉토리(.)를 추가한다는 의미다. 다시 status 명령을 실행해보면

녹색으로 새 파일이 추가되었음을 확인할 수 있다. 이렇게 수정된 사항을 add로 추가하는 것을 스테이징(staging)이라고 한다. 스테이징된 수정사항들은 나중에 하나의 커밋으로 묶여 반영된다.

3. 로컬 저장소에 커밋

이제 첫 번째 커밋을 만들어준다.

$ git commit -m 'Initial Commit'

'Initial Commit' 대신 원하는 커밋 메시지를 입력하면 된다.

4. 깃허브 원격 저장소 추가

깃허브 저장소 페이지에 가보면 '.git'으로 끝나는 깃허브 저장소 주소가 있다. 이 정보를 복사해준다.

$ git remote add origin https://github.com/davean27/test1.git

git remote add <origin> <주소> 명령으로 추가해준다. 이 로컬 저장소에서 origin이라는 리모트 저장소로 깃허브 저장소의 주소를 연결해주었다.

$ git remote -v
origin	https://github.com/davean27/test1.git (fetch)
origin	https://github.com/davean27/test1.git (push)

remote -v 명령으로 현재 등록된 원격 저장소 정보를 확인할 수 있다.

5. 깃허브에 코드 업로드 (Push)

$ git branch
* master

git branch 명령으로 현재 작업 브랜치를 확인한다. 처음 로컬 저장소를 생성했으므로 master 브랜치만 있을 것이다.

$ git push origin master
Enumerating objects: 4, done.
Counting objects: 100% (4/4), done.
Delta compression using up to 8 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (4/4), 266 bytes | 266.00 KiB/s, done.
Total 4 (delta 0), reused 0 (delta 0)
To https://github.com/davean27/test1.git
 * [new branch]      master -> master

"git push <원격 저장소 이름> <브랜치 이름>" 명령을 실행한다. 아까 원격저장소 origin으로 깃허브 주소를 입력했으니, 로컬 저장소의 master 브랜치를 깃허브에 push 하라는 의미가 된다.

다시 깃허브로 돌아가보면

로컬 작업 디렉토리가 깃허브에 잘 업로드 된 것을 확인할 수 있다.

댓글