GitLab에서 프로젝트 생성하고 코드 올리기
GitLab에서 새로운 프로젝트를 생성하고, 내가 작성한 소스 코드를 성공적으로 올리는 방법에 대해 알아보겠다.
GitLab이란?
GitLab은 단순한 코드 저장소를 넘어 CI/CD 파이프라인, 이슈 트래커 등 다양한 기능을 제공하여 개발 과정을 효율적으로 관리할 수 있게 해주는 플랫폼
1. GitLab에서 새로운 프로젝트 생성하기
먼저 GitLab에 로그인한 후, 새로운 프로젝트를 생성하겠다.
- 페이지 오른쪽 상단 또는 중앙의 'New project' 또는 '+' 버튼을 클릭
- 'Create blank project'를 선택, 이미 다른 저장소에 있는 프로젝트를 가져오거나(Import project), 외부 저장소에 CI/CD 기능만 연결하는 옵션도 있지만, 여기서는 완전히 새로운 빈 프로젝트를 만들겠다.
- 프로젝트 정보를 입력
- Project name: 프로젝트의 이름을 정한다. (예: study)
이 이름은 한번 정하면 나중에 쉽게 변경하기 어려울 수 있으니 신중하게 결정하는 것이 좋다. - Project slug: GitLab에서 사용할 프로젝트의 주소(URL)가 된다. 보통 Project name을 기반으로 자동 생성되지만, 필요하다면 수정할 수 있다.
- Project description: 프로젝트에 대한 간략한 설명을 입력. 어떤 프로젝트인지 다른 사람들이 쉽게 파악할 수 있도록 도와준다.
- Visibility Level: 프로젝트의 공개 범위를 설정. 'Private'(비공개), 'Internal'(그룹 내 공개), 'Public'(전체 공개) 중 선택할 수 있다. 팀 프로젝트라면 보통 'Private'이나 'Internal'을 선택
- Initialize repository with a README: 이 항목은 체크를 해제. 로컬에서 이미 작업한 코드나 파일을 올릴 예정이라면, GitLab에서 README 파일을 미리 생성하지 않는 것이 충돌을 방지하는 데 좋다.
- Project name: 프로젝트의 이름을 정한다. (예: study)
- 정보 입력을 마쳤다면 'Create project' 버튼을 클릭하여 프로젝트 생성을 완료.
2. 생성된 프로젝트에 로컬 코드 연결 및 업로드
프로젝트를 성공적으로 생성하면, GitLab은 해당 프로젝트에 코드를 올릴 수 있는 몇 가지 방법을 안내해 준다.
'Command line instructions' 섹션에 나와 있는 내용들을 살펴보도록 하자.
✅ Git 전역 설정 (Git global setup)
이 부분은 Git을 처음 사용하거나 새로운 환경에서 사용하는 경우에 설정. 사용자 이름과 이메일을 Git 커밋 정보에 남기도록 설정하는 것이다.
git config --global user.name "공부곤"
git config --global user.email "study@gmail.com"
--global 옵션은 해당 컴퓨터의 모든 Git 저장소에 동일한 설정을 적용한다. 특정 프로젝트에만 다른 설정을 사용하고 싶다면 --global 옵션을 빼고 해당 프로젝트 폴더에서 설정하면 된다.
✅ 새로운 저장소 만들기 (Create a new repository)
만약 로컬에 아직 Git 저장소가 없는 상태에서 새로운 프로젝트를 시작한다면 이 방법을 사용한다.
git clone <https://kdt-gitlab.elice.io/study.git> # GitLab 프로젝트 주소로 변경
cd study-java
touch README.md # 예시 파일 생성
git add README.md
git commit -m "add README"
git push -u origin master
- git clone [프로젝트 주소] : GitLab에 생성된 빈 프로젝트를 로컬 컴퓨터로 복제. 이 명령을 실행하면 자동으로 원격 저장소(origin)가 연결된다.
- cd hoseong-java : 복제된 프로젝트 폴더로 이동.
- touch README.md : 예시로 README.md 파일을 생성. 실제 프로젝트에서는 작업 중인 파일들이 이 폴더 안에 있게 된다.
- git add README.md : 생성된 파일을 Git의 Staging Area에 추가. 커밋할 대상을 선택하는 단계이다.
- git commit -m "add README" : Staging Area에 있는 파일들을 로컬 저장소에 커밋한다. -m 옵션 뒤에 커밋 메시지를 남겨 어떤 변경사항인지 기록.
- git push -u origin master : 로컬 저장소의 master 브랜치 내용을 원격 저장소(origin)로 푸시. -u 옵션은 이후 git push나 git pull 명령 시 origin master를 생략할 수 있도록 추적 관계를 설정한다.
✅ 기존 폴더 푸시하기 (Push an existing folder)
로컬 컴퓨터에 이미 작업 중인 소스 코드가 담긴 폴더가 있지만, 아직 Git 저장소로 관리하고 있지 않다면 이 방법을 사용한다.
cd existing_folder # 기존 소스 코드가 있는 폴더로 이동
git init # 현재 폴더를 Git 저장소로 초기화
git remote add origin <https://kdt-gitlab.elice.io/study.git> # 원격 저장소(GitLab 프로젝트) 연결
git add . # 현재 폴더의 모든 파일(숨김 파일 제외)을 Staging Area에 추가
git commit -m "Initial commit"
git push -u origin master
- git init : 해당 폴더에 .git 숨김 폴더를 생성하며 Git 저장소로 만든다.
- git remote add origin [프로젝트 주소] : GitLab에 생성한 프로젝트를 origin이라는 이름으로 원격 저장소 목록에 추가
- 나머지 git add, git commit, git push 명령어는 위와 동일
✅ 기존 Git 저장소 푸시하기 (Push an existing Git repository)
로컬에 이미 Git 저장소가 있지만, 다른 원격 저장소(예: GitHub)에 연결되어 있거나 아직 어떤 원격 저장소와도 연결되어 있지 않은 경우 이 방법을 사용한다.
cd existing_repo # 기존 Git 저장소가 있는 폴더로 이동
git remote rename origin old-origin # 기존에 origin이라는 원격 저장소가 있다면 이름을 변경 (없다면 이 명령은 생략)
git remote add origin <https://kdt-gitlab.elice.io/study.git> # GitLab 프로젝트를 새로운 origin으로 추가
git push -u origin --all # 모든 브랜치 푸시
git push -u origin --tags # 모든 태그 푸시 (태그가 있다면)
이 방법은 기존 원격 저장소 이름을 바꾸고(선택 사항), GitLab 프로젝트를 새 origin으로 추가한 다음, 로컬 저장소의 모든 브랜치와 태그를 한 번에 푸시할 때 유용하다.
3. 기본적인 Git 사용 순서
GitLab 프로젝트와 로컬 저장소를 연결했다면, 앞으로는 다음과 같은 순서로 작업하고 코드를 공유하게 된다.
- 클론 (Clone): 프로젝트를 시작할 때, 또는 다른 팀원의 최신 코드를 가져올 때 git clone [프로젝트 주소] 명령으로 원격 저장소를 로컬로 복제한다. 이미 프로젝트가 있다면 git pull 명령으로 최신 변경사항을 가져온다.
- 코드 반영/수정: 로컬에서 원하는 기능을 개발하거나 버그를 수정한다. 새로운 파일을 추가하거나 기존 파일을 수정하는 등의 작업을 한다.
- 파일 추가 (Add): 변경된 파일들을 커밋할 대상으로 선택한다. git add [파일명] 또는 변경된 모든 파일을 추가하는 git add . 명령을 사용한다.
- 파일 커밋 (Commit): Staging Area에 추가된 변경사항들을 로컬 저장소에 확정하고 기록한다. git commit -m "[커밋 메시지]" 명령을 사용한다.
- 파일 푸시 (Push): 로컬 저장소에 커밋된 내용들을 GitLab의 원격 저장소로 업로드하여 다른 팀원들과 공유한다. git push origin [브랜치명] 명령을 사용한다.