본문 바로가기

Programming/Git

[Git]Gitlab(3) - 소스 올리기

안녕하세요. 잇킹 시도르입니다.

 

이제 깃랩 ssh 연동까지 완료했고, 작업한 소스들을 이제 올려 봐야겠죠?

저는 파이참과 같은 IDE의 기능이 아닌 터미널 창에서 직접 사용하려고 합니다. CLI를 사용하는 프로젝트가 많았고, 윈도우 환경이라면 소스트리 등 좋은 프로그램도 많더라고요. 

 

깃랩에서 프로젝트를 생성하게 되면 CLI 명령어들이 나옵니다. 사실 해당 명령어를 순서대로 진행하면 작성한 파일을 깃랩에 올리게 되는 것입니다. 각 명령어에 대한 설명을 진행하면서 진행하겠습니다.

▲친절한 깃랩 명령어

 

git init

1. 원하는 곳에 폴더를 만들어서 파이참 프로젝트로 생성합니다. git_test라는 폴더이고, test1, test2 파일을 생성했습니다.

※지금 생성한 git_test라는 폴더를 깃에서는 작업공간(Working space/Working directory)이라고 부릅니다.

 

 

2. CMD창이나 GIT BASH 등 모두 동일한 명령어입니다. 전 파이참 터미널에서 입력할 거고요.

작업한 나의 작업 공간을 깃과 연결해야겠죠? 이 명령어가 git init입니다.

git init : 현재 폴더를 git의 관리 하에 두겠다는 명령어입니다.

깃 저장소가 만들어졌다는 메시지가 나오네요. 

Microsoft Windows [Version 10.0.18362.720]
(c) 2019 Microsoft Corporation. All rights reserved.

(sidorl) D:\My_DEV\py_prj\git_test>git init
Initialized empty Git repository in D:/My_DEV/py_prj/git_test/.git/

 

 

3. 다음에는 gitlab 프로젝트에서 나오는 global setup 명령을 복사해서 CLI에 입력해주면 됩니다.

▲Gitlab 프로젝트에서 나오는 Git global setup

 

명령어 입력 시에 아무 메시지도 안 나오는 게 정상입니다.

(sidorl) D:\My_DEV\py_prj\git_test>git config --global user.name "Sichul Park"

(sidorl) D:\My_DEV\py_prj\git_test>git config --global user.email "parksichul3593@gmail.com"

 

파이참 터미널 화면에서 보면 다음과 같네요. 하단의 Terminal 버튼을 통해서 CMD 창과 같게 사용할 수 있습니다.

▲파이참의 Terminal

 

이제 깃 저장소 생성 완료했습니다.

※지금 말하는 저장소는 깃의 로컬 저장소입니다. 아직 깃랩 원격 저장소에 올린 게 아닙니다.

 

 

git remote add

이제 git remote 명령어입니다. 해당 명령어를 통해 깃랩에서 만들었던 저장소를 원격 저장소로 추가하는 거죠.

git remote add origin git@gitlab.com:sichul_park/p_myself.git
현재 폴더에 깃랩 저장소(git@gitlab.com:sichul_park/p_myself.git)를 origin이라는 이름의 원격 저장소로 추가해라 라는 의미입니다. 

처음에는 git remote를 입력하면 설정된 원격 저장소가 없으므로 아무것도 나오지 않습니다. 명령어를 입력한 후에는 origin 저장소가 보이네요.

(sidorl) D:\My_DEV\py_prj\git_test>git remote

(sidorl) D:\My_DEV\py_prj\git_test>git remote add origin git@gitlab.com:sichul_park/p_myself.git

(sidorl) D:\My_DEV\py_prj\git_test>git remote
origin

 

 

git add/git commit

이제 생성한 test1, test2 스크립트를 깃 로컬 저장소에 올려보죠.

 

1. git status 명령어를 통해 현재의 깃 상태를 확인해봅니다.

(sidorl) D:\My_DEV\py_prj\git_test>git status
On branch master

No commits yet

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        .idea/
        test1.py
        test2.py

nothing added to commit but untracked files present (use "git add" to track)

아직 추적되지 않은 파일이 있다고 나옵니다. git add 명령어를 사용해서 깃이 해당 파일들을 추적하라고 하네요. 

 

2. 깃은 저장소에 올리기 전에 추적한 파일을 스테이지 영역에 먼저 올리게 됩니다. 추적은 현재 시점을 깃이 인식하게 한다고 생각하면 되겠네요. 이 영역에 올라간 파일들이 커밋할 때 저장소에 올라가게 되는 거죠. 해당 명령어는 다음과 같습니다.

git add --all : 추적되지 않은 파일을 전부 스테이지에 올리겠다는 명령어입니다. git add -A와 같고요
git add 파일명 : 해당 파일만 깃이 추적하게 하는 명령어입니다.
(sidorl) D:\My_DEV\py_prj\git_test>git add -A

 

그리고 다시 깃의 상태를 확인해보겠습니다. 아직 커밋되지 않은 파일들을 보여줍니다.

(sidorl) D:\My_DEV\py_prj\git_test>git status
On branch master

No commits yet

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)
        new file:   .idea/.gitignore
        new file:   .idea/git_test.iml
        new file:   .idea/inspectionProfiles/profiles_settings.xml
        new file:   .idea/misc.xml
        new file:   .idea/modules.xml
        new file:   .idea/vcs.xml
        new file:   test1.py
        new file:   test2.py

 

3. 이제 해당 파일을 커밋해보죠. 커밋하게 되면 스테이지 영역의 파일들이 깃 로컬 저장소에 올라가게 됩니다. 

명령어는 다음과 같습니다

git commit -m "메시지 내용"

(sidorl) D:\My_DEV\py_prj\git_test>git commit -m "first commit"
[master (root-commit) f302c4b] first commit
 8 files changed, 36 insertions(+)
 create mode 100644 .idea/.gitignore
 create mode 100644 .idea/git_test.iml
 create mode 100644 .idea/inspectionProfiles/profiles_settings.xml
 create mode 100644 .idea/misc.xml
 create mode 100644 .idea/modules.xml
 create mode 100644 .idea/vcs.xml
 create mode 100644 test1.py
 create mode 100644 test2.py

 

이제 현시점의 스크립트를 로컬 저장소에 커밋했습니다.

 

 

git push

마지막으로 원격 저장소에 현 커밋한 파일을 올릴 차례입니다. 이번 단계를 통해 실제 저의 소스가 깃랩에 올라가게 되죠.

프로젝트에서 커밋했니?라고 하면 이 단계를 완료했냐?라는 의미로 많이 쓰이게 됩니다. 푸시했니?라고는 거의 안 쓰던 것 같아요.

git push -u origin master
현재 브랜치의 파일을 origin 원격 저장소의 master 브랜치에 올리겠다는 의미입니다.

해당 명령어를 통해 소스를 올리고 나서 깃랩에서 확인해보겠습니다.

 

정상적으로 소스 업로드가 되었네요.

이상입니다!!!