::: IT인터넷 :::

gitlab에서 소스코드 작업하기 (clone, checkout, commit, push)

곰탱이푸우 2021. 7. 5. 08:20

project와 branch까지 만들었으면 코드 개발을 위해 실제 개발 환경에 코드 저장소를 clone 해야 한다.

 

gitlab에서 project 와 branch 생성하는 것은 아래 포스팅을 참고한다.

 

gitlab에서 group, project 생성하기

gitlab을 설치하는 과정은 이전 포스팅에서 진행했다. 시놀로지 NAS에서 GitLab 설정 방법 개요 시놀로지 NAS에서 GitLab도 설치 가능하며, DS21x 모델 기준으로 DS216 부터 추가되었다. 아마도 Docker를 DS216

www.bearpooh.com

 

git은 저장소 개념이 원격 저장소 (remote)와 로컬 저장소 (local)로 구분된다.

  • 원격 저장소는 gitlab 서버와 같은 코드 저장 공간을 의미한다.
  • 로컬 저장소는 실제 코드 개발을 진행하는 로컬 환경에 생성 된 저장소를 의미한다.

 

 

저장소의 우측 상단에 보면 Clone 버튼이 존재한다.

  • Clone with SSH - SSH 프로토콜을 이용하여 코드를 clone 한다.
  • Clone with HTTPS - HTTPS 프로토콜을 이용하여 코드를 clone한다.

 

GitLab의 SSH, HTTPS 프로토콜 설정은 다음 포스팅을 참고한다.

 

시놀로지 NAS에서 GitLab 설정 방법

개요 시놀로지 NAS에서 GitLab도 설치 가능하며, DS21x 모델 기준으로 DS216 부터 추가되었다. 아마도 Docker를 DS216부터 지원하기 시작했기 때문으로 보인다. 기존에 사용하던 DS213은 Git Server 설치가 가

www.bearpooh.com

 

SSH를 이용한 코드 clone은 추가 설정이 필요하므로 HTTPS를 이용한 clone부터 정리한다.

 

 

소스코드 Clone 하기

우분투 환경에서는 git을 설치해야 한다. 윈도우의 경우 git scm을 별도로 설치해야 한다.

 

우분투 환경에서는 다음 명령을 실행한다.

$ sudo apt install git

 

 

Clone with HTTPS

Clone 버튼 아래 Clone with HTTPS의 복사 버튼을 클릭한다.

 

소스코드를 내려받을 경로로 이동하고 다음 명령을 입력하여 코드를 내려 받는다.

  • $ git clone https://gitlab경로:포트/코드경로/프로젝트명.git
  • gitlab의 사용자 계정 정보를 입력한다.
  • 폴더 단위로 내려 받는다. ls하면 프로젝트명의 폴더가 생성된 것을 확인할 수 있다.
  • 해당 폴더의 파일 목록을 확인하면 정상적으로 내려 받은 것을 확인할 수 있다.

 

 

Clone with SSH

Clone 버튼 아래 Clone with SSH의 복사 버튼을 클릭한다.

 

소스코드를 내려받을 경로로 이동하고 다음 명령을 입력하여 코드를 내려 받는다.

  • $ git clone ssh://git@gitlab경로:포트/코드경로/프로젝트명.git
  • Permission denied (pulickey) 오류가 발생한다.
  • 해당 PC의 ssh 인증에 필요한 key가 gitlab에 등록되어 있지 않기 때문이다.

 

 

개발 환경의 사용자 홈 경로에서 ssh-keygen 명령을 실행한다.

  • Enter file in which to save the key - 엔터 입력 (기본 값인 id_rsa 사용)
  • Enter passphrase - 엔터 (지정하고자 하는 값이 없음)
  • Enter same passphrase again - 엔터 (지정하고자 하는 값이 없음)

 

개발 환경의 사용자 홈 경로에 있는 .ssh 폴더의 id_rsa.pub 파일의 내용을 확인하고 전체 내용을 복사한다.

 

gitlab에 접속하여 우측 상단의 아이콘을 클릭하고 Preferences로 이동한다.

 

 

좌측 메뉴를 살펴보면 SSH Keys 메뉴가 있다. Add an SSH Key에 위에서 복사한 id_rsa.pub 파일의 내용을 붙여넣기 한다.

 

정상적으로 SSH Key가 등록되면 상세 정보 확인이 가능하다.

 

위의 과정을 마치고 다시 SSH 프로토콜을 사용한 git clone을 시도하면 성공적으로 진행된다.

 

 

브랜치 전환하기

처음 clone하게 되면 master 브랜치에 위치한다.

코드 작업은 생성한 TEST-1-test-gitlab 브랜치에서 진행할 것이므로 다음 명령을 입력하여 브랜치 전환을 해야 한다.

  • $ git checkout -b 생성할-브랜치-이름 origin/gitlab의-브랜치-이름
  • 이제 로컬 git 저장소도 원격지의 브랜치를 바라본다.

 

변경사항 commit (로컬 git 저장소)

echo 명령을 이용하여 commit 할 파일을 임시로 만든다.

 

commit을 하기 위해서는 사용자 정보가 설정되어 있어야 한다.

git을 처음 셋팅했을때 필요하고, 이후에는 생략해도 된다.

  • $ git config --global user.email "이메일주소"   # 사용자 이메일 주소
  • $ git config --global user.name "사용자이름"  # 사용자 이름 (가급적 gitlab의 이름과 통일)

 

 

commit 명령을 실행한다.  commit은 개발 환경에 위치하는 로컬 git 저장소에 저장한다.

  • $ git commit -m "commit comments"  # 커밋 코멘트와 함께 코드 변경 사항 commit
  • 변경사항을 commit 예정사항으로 등록하지 않았기 때문에 git add 명령을 먼저 수행해야 한다.
  • 변경 사항을 확인하고 git add 명령을 수행한다.
  • $ git add 추가할파일명.확장명   # git add * 하면 모든 변경사항이 추가된다.

Tip) 불필요한 파일은 .gitignore 활용

코드를 내려받은 최상위 경로에 .gitignore 파일을 생성하고 내부에 경로나 파일명을 지정하면 commit 대상에서 제외된다.

다음 글을 참고한다.

 

.gitignore 적용하기

프로젝트 생성후 git을 연동하면서 가장먼저 하게되는 gitignore처리 간략정리

velog.io

 

다시 commit 명령을 실행한다.  commit은 개발 환경에 위치하는 로컬 git 저장소에 저장한다.

  • $ git commit -m "commit comments"  # 커밋 코멘트와 함께 코드 변경 사항 commit
  • 정상적으로 commit 된 것을 확인할 수 있다.

 

 

변경사항 push 하기 (원격 git 저장소)

push 명령을 실행하여 git 원격 저장소에 저장한다.

  • $ git push
  • gitlab의 사용자 계정 정보를 입력한다.
  • 정상적으로 저장 된 것을 확인할 수 있다.

 

실제 gitlab의 해당 브랜치 페이지에 접속 (또는 새로고침)하면 commit 된 파일을 확인할 수 있다.