본문 바로가기
기술/Git

프로젝트 만들고 GitHub에 첫 Commit하고 Push하기

by 포도빛 2021. 4. 25.

먼저 GitHub에서 새로운 저장소(Repository)를 만들자!

 

 

GitHub에 접속한 다음, 우측 상단에 있는 [+] 기호를 클릭하고

"New repository"를 클릭하여 새 저장소 생성 페이지로 이동한다.

 

 

 

새 저장소 생성 페이지가 나타나면 필요한 항목을 입력하고 [Create Repository]를 클릭한다.

 

 

 

저장소가 신규로 생성되면 바로 아래와 같은 빠른 설정 가이드가 나타나는데 이곳에 이미 무엇을 해야할지 명령어 목록이 나타나있다.

 

 

 

 

명령 프롬프트(cmd) 또는 터미널(Terminal)을 열어

자신이 GitHub에 등록한 프로젝트를 만들거나, 기존 프로젝트의 디렉토리로 이동한다.

 

$ cd "C:\MyProjects\TestProject"

만약 Git 프로젝트가 아니라면 아래 명령어를 사용하여 Git 프로젝트로 초기화를 해준다.

* Git의 초기화일뿐 프로젝트가 초기화되진 않는다.

* 만약 Git 프로젝트인데 이 명령어를 사용하면 그동안 쌓인 Git 기록이 초기화 될 수 있으니 주의한다. (프로젝트 디렉토리에 ".git"이라는 폴더가 있다면 Git 프로젝트이다. Unix/Linux 환경에서는 파일 이름 앞이 .기호로 시작된다면 숨김 파일이므로 ls -a를 사용하여 확인해야한다.)

 

$ git init

# 출력:
Initialized empty Git repository in /프로젝트위치/.git/

이제 이 Git 프로젝트에서 아래 명령어를 통해 원격 저장소인 GitHub를 추가해준다.

 

[이름]은 이 Git 프로젝트를 다루는 컴퓨터에서 사용할 원격 저장소의 이름을 지정해주는 것이고

보통 origin을 사용하고, github, firstserver 등등 아무 이름으로 지정해도 된다. 단지 자신이 어느 원격 저장소를 사용하는지만 구분할 줄 알면 된다.

 

* 저장소는 여러개 추가할 수 있다.

$ git remote add [이름] [HTTPS 또는 SSH 주소]

# 예시:
# git remote add origin https://github.com/smartse0k/blabla.git
# git remote add github https://github.com/smartse0k/blabla.git

첫 번째 커밋(Commit)을 하기 위해 소스코드나 아무 파일을 만들고 내용을 채워준다.

그리고 아래 명령어를 통해 상태를 본다.

 

$ git status

# 출력:
On branch main (현재 브런치: main)

No commits yet (아직 아무 커밋 없음)

Changes to be committed: (커밋될 변경점 = 커밋 명령어를 사용하는 경우 적용될 대상 = Stage된 변경점)
  (use "git rm --cached <file>..." to unstage)
        new file:   README.md (새 파일 README.md 생성)

Changes not staged for commit: (Stage되지 않은 변경점 = 커밋이 적용되지 않는 대상)
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        modified:   README.md (README.md의 수정)

Untracked files: (추적하지 않는 파일들)
  (use "git add <file>..." to include in what will be committed)
        .idea/
        Phodobit/

 

위 출력에 이미 괄호()를 사용하여 해석할 수 있게 메모해두었다.

출력 내용은 사용자의 동작 순서에 따라 변경될 수 있으므로 반드시 설명을 이해하도록 하자.

 

만약 이 상태 그대로 커밋한다면 "오직 README.md 생성"만 커밋된다. (내용은 반영되지 않는다.)

또 Changes to be committed에 아무 내용이 없다면 커밋할 내용이 없으므로 커밋 자체가 되지 않는다.

 

그렇기 때문에 현재 소스코드 또는 파일의 내용을 그대로 커밋할 내용에 반영(필자의 경우 README.md에 적힌 내용도 반영)할 필요가 있다.


아래 명령어를 통해 Stage 상태(Changes to be committed에 추가)로 만들어준다.

 

$ git add [파일명]

# 예시:
# git add README.md

 

그리고 다시 "git status" 명령어를 통해 위에서 설명한 내용대로 잘 반영 되었는지 직접 확인해보자.

 


이제 아래의 명령어를 입력하여 커밋을 등록한다.

$ git commit -m "커밋메시지"

# 예시:
# git commit -m "README.md 추가"

# 출력:
[main (root-commit) 504c5aa] README.md 추가
 1 file changed, 3 insertions(+)
 create mode 100644 README.md

* 만약 커밋하는데 아래와 같은 메시지가 나타나는 경우 메시지에 따라 절차를 수행해준다.

 

Author identity unknown

*** Please tell me who you are.

Run

git config --global user email "~"

git config --global user.name "~"

to set your account's default identity.

Omit --global to set the identity only in this repository.

fatal: unable to auto-detect email address (got 'js@JS-PC.(none)')

 

현재 Commit을 하는데 있어 누군지 신원을 입력하지 않았기 때문에 메시지가 요구하는대로 신원을 밝혀주어야 한다.

$ git config --global user.email "자신의 이메일"
$ git config --global user.name "자신의 이름/닉네임"

커밋(Commit)을 하면 로컬(Local: 자신의 PC 안)에서만 반영이 된다.

이제 GitHub에 Push(푸쉬 = 업로드)하기 위해 아래 명령어를 사용한다.

 

$ git push [저장소이름] [브런치이름]

# 예시:
# git push origin main

 

 

* 현재 Git 프로젝트에 기본 저장소를 설정해두면 `git push` 명령어만으로도 Push가 가능하다.


 

사용중인 Git의 버전과 저장소 Scheme에 따라 출력이 다른데 HTTPS로 한 경우엔 로그인 화면이 나타난다.

로그인 화면이 나타나면 자신의 Github 계정으로 로그인하도록 하자.

 

* 만약 SSH로 한 경우엔 SSH Key를 등록한 경우 즉시 Push가 완료되고, SSH Key를 등록하지 않은 경우 인증 실패가 나타나는데, SSH 인증은 나중에 알아보도록 한다.

 

Push가 완료되면 아래와 같은 출력이 나타난다.

 


이제 GitHub 저장소 페이지를 새로고침하면 자신의 코드/파일이 Push(업로드)된 것을 확인할 수 있다.

 

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

Git 공식 한국어 가이드북  (511) 2020.12.25
CentOS 7에 Git을 설치해보자!  (1818) 2020.12.25
Windows(윈도우)에 Git을 설치해보자!  (3645) 2020.12.23

댓글