[Platform] Gitlab을 사용하여 소스코드 업로드




GitLab을 이용하여 소스코드를 관리하기 위한 기본적인 테스트 내용을 정리합니다.

Git 호스팅 서비스를 하는 서비스가 GitHub, GitLab 등이 있는 것으로 알고 있었고 아래 블로그에서 차이를 확인해 본 결과 GitLab이 비공개 저장소(Private)를 무료로 제공하는 것으로 확인되어 GitLab을 사용해 보기로 하였습니다.

https://m.blog.naver.com/dlwhdgur20/221006619001

그리고 향후에 GitLab 설치형 서버를 이용하여 나만의 GitLab 환경을 구성해 볼 예정입니다.


Gitlab 프로젝트 생성

ㅇ Gitlab 사이트 : https://gitlab.com/

New Project로 프로젝트를 생성으로 들어가서 Project name을 입력하고 기타 필요한 정보를 입력하여 새로운 프로젝트를 생성하면 됩니다.

프로젝트 생성 후, project overview > Details에 보면 소스코드를 repository에 push하는 방법이 친절하게 표기되어 있습니다.


소스코드 업로드

Centos로 돌아가서 소스코드를 업로드할 디렉토리로 이동을 합니다.

(venv) [root@jackerlab workspace]# pwd
/root/workspace
(venv) [root@jackerlab workspace]# ls -al
합계 4
drwxr-xr-x.  4 root root   53  2월  8 07:49 .
dr-xr-x---. 18 root root 4096  2월  8 20:11 ..
drwxr-xr-x.  4 root root   68  2월  8 07:55 jackerlab_django
drwxr-xr-x.  3 root root   22  2월  8 19:46 jackerlab_react
(venv) [root@jackerlab workspace]# 

‘Git global setup’의 설정을 수행 합니다.

(venv) [root@jackerlab workspace]# git config --global user.name "xxx"
(venv) [root@jackerlab workspace]# git config --global user.email "xxx@xxx.com"

gitlab에 프로젝트는 UI에서 생성했기 때문에 ‘Create a new repository’ 단계는 Skip 하겠습니다.

‘Push an existing folder’의 단계를 수행 합니다.

cd existing_folder
git init
git remote add origin https://gitlab.com/xxx/jackerlab-workspace.git
git add .
git commit -m "Initial commit"
git push -u origin master
(venv) [root@jackerlab workspace]# git init
/root/workspace/.git/ 안의 빈 깃 저장소를 다시 초기화했습니다
(venv) [root@jackerlab workspace]# ls -al
합계 4
drwxr-xr-x.  5 root root   65  2월  8 20:15 .
dr-xr-x---. 18 root root 4096  2월  8 20:11 ..
drwxr-xr-x.  7 root root  119  2월  8 20:15 .git
drwxr-xr-x.  4 root root   68  2월  8 07:55 jackerlab_django
drwxr-xr-x.  3 root root   22  2월  8 19:46 jackerlab_react
(venv) [root@jackerlab workspace]# 
(venv) [root@jackerlab workspace]# git status
현재 브랜치 master

아직 커밋이 없습니다

추적하지 않는 파일:
  (커밋할 사항에 포함하려면 "git add <파일>..."을 사용하십시오)

	jackerlab_django/
	jackerlab_react/

커밋할 사항을 추가하지 않았지만 추적하지 않는 파일이 있습니다 (추적하려면 "git
add"를 사용하십시오)
(venv) [root@jackerlab workspace]# 

.git 디렉토리가 생성되고 해당 디렉토리 하위의 있는 모든 디렉토리/파일을 작업 대상으로 인식을 자동으로 합니다.

(venv) [root@jackerlab workspace]# git remote add origin https://gitlab.com/xxx/jackerlab-workspace.git
(venv) [root@jackerlab workspace]# 

local 저장소에 업로드할 소스를 ‘add’ 합니다.

(venv) [root@jackerlab workspace]# git add .
(venv) [root@jackerlab workspace]# git status | more
현재 브랜치 master

아직 커밋이 없습니다

커밋할 변경 사항:
  (스테이지 해제하려면 "git rm --cached <파일>..."을 사용하십시오)

	새 파일:       jackerlab_django/backend/__init__.py
	새 파일:       jackerlab_django/backend/__pycache__/__init__.cpython-36.pyc
	새 파일:       jackerlab_django/backend/__pycache__/settings.cpython-36.pyc
	새 파일:       jackerlab_django/backend/__pycache__/urls.cpython-36.pyc
	새 파일:       jackerlab_django/backend/__pycache__/wsgi.cpython-36.pyc
	새 파일:       jackerlab_django/backend/asgi.py
	새 파일:       jackerlab_django/backend/settings.py
	새 파일:       jackerlab_django/backend/urls.py
	새 파일:       jackerlab_django/backend/wsgi.py
	새 파일:       jackerlab_django/db.sqlite3
	새 파일:       jackerlab_django/manage.py
...

소스 코드를 commit 합니다.

(venv) [root@jackerlab workspace]# git commit -m "Initial commit"

소스 코드를 push하여 gitlab 의 나의 프로젝트 저장소로 업로드를 합니다.

(venv) [root@jackerlab workspace]# git push -u origin master
Username for 'https://gitlab.com': xxx
Password for 'xxx': xxx
오브젝트 나열하는 중: 8174, 완료.
오브젝트 개수 세는 중: 100% (8174/8174), 완료.
오브젝트 압축하는 중: 100% (7104/7104), 완료.
오브젝트 쓰는 중: 100% (8174/8174), 11.11 MiB | 2.57 MiB/s, 완료.
Total 8174 (delta 2031), reused 0 (delta 0)
remote: Resolving deltas: 100% (2031/2031), done.
To https://gitlab.com/xxx/jackerlab-workspace.git
 * [new branch]      master -> master
'master' 브랜치가 리모트의 'master' 브랜치를 ('origin'에서) 따라가도록 설정되었습니다.
(venv) [root@jackerlab workspace]# 

gitlab에 정상적으로 소스코드가 업로드 된 것으로 확인됩니다.

추가적으로 git 저장소에 업로드를 하지 않을 디렉토리/파일들은 .gitignore 파일을 생성하여 정의하면 되겠습니다.

react App을 설치하면 해당 디렉토리에 기본적으로 .gitignore 파일이 생성되는 것으로 확인되고 실제로 예외 정의된 디렉토리/파일들은 업로드가 되지 않은 것으로 확인됩니다.

(venv) [root@jackerlab frontend]# pwd
/root/workspace/jackerlab_react/frontend
(venv) [root@jackerlab frontend]# ls -al
합계 516
drwxr-xr-x.    5 root root    123  2월  8 19:48 .
drwxr-xr-x.    3 root root     22  2월  8 19:46 ..
-rw-r--r--.    1 root root    310  2월  8 19:48 .gitignore
-rw-r--r--.    1 root root   2884  2월  8 19:48 README.md
drwxr-xr-x. 1022 root root  32768  2월  8 19:50 node_modules
-rw-r--r--.    1 root root    744  2월  8 19:48 package.json
drwxr-xr-x.    2 root root    120  2월  8 19:48 public
drwxr-xr-x.    2 root root    148  2월  8 19:48 src
-rw-r--r--.    1 root root 454962  2월  8 19:48 yarn.lock
(venv) [root@jackerlab frontend]# cat .gitignore 
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.

# dependencies
/node_modules
/.pnp
.pnp.js

# testing
/coverage

# production
/build

# misc
.DS_Store
.env.local
.env.development.local
.env.test.local
.env.production.local

npm-debug.log*
yarn-debug.log*
yarn-error.log*
(venv) [root@jackerlab frontend]# 

마치며

git 명령어가 익숙하지 않고 명령어에 대한 의미를 잘 모르는 상태이지만 진행에는 어려움이 없이 정상적으로 gitlab.com 사이트에 나의 소스를 업로드 할 수 있었습니다.

향후에는 git 명령어 및 git에 대하여 좀 더 상세한 내용을 찾아 학습하고 정리해 볼 수 있도록 할 예정입니다.



Leave a Comment