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에 대하여 좀 더 상세한 내용을 찾아 학습하고 정리해 볼 수 있도록 할 예정입니다.