본문 바로가기

KOSA 클라우드 솔루션즈 아키텍트 양성과정

[7.26] Git lab

--- Git을 활용한 GitHub에 소스코드 Push

# mkdir git-test && cd $_
# echo "Hello World" >  README.txt
# git init
Initialized empty Git repository in /root/git-test/.git/ # 로컬 저장소

 

-- 내부에서의 commit (개발자 입장)

 

README 파일을 push하기 위해 git-test폴더를 로컬 레포지토리로 만듦

 

버전관리를 위해 작업자의 정보를 기재

 

어떤 작업을 했는지 다른 작업자가 알 수 있도록 add site라는 메시지를 남긴 것

 

만약 이렇게 추가 작업이 생긴다면 다시 add하고 commit해야 함

 

새로 추가된 내용에 대한 add와 commit

 

git log를 통해 시간대별 commit내역 확인 가능(=버전관리)

 

checkout을 통해 Hello World만 있을 때로 롤백(checkout 명령어 뒤에는 commit 아이디 입력)

 

checkout하여 롤백 완료

 

checkout 후 다시 최근의 작업으로 돌아가고자 할 때


-- 원격 레포지토리에 commit

 

원격 저장소의 주소를 복사

 

원격 저장소를 추가한 후, 해당 공간에 업로드하겠다는 의미

 

같은 저장소 내에서도 공간이 분리될 수 있음, master(branch)라는 저장 공간 외에도 다른 저장 공간 생성 가능, push 명령어를 실행 후 Token을 입력해야 함

 

Token 입력 팝업창이 생성됨
settings

 

좌측 메뉴에서 Developer settings

 

personal access tokens

 

Generate new tokens

 

token이름 정해주고 repo만 체크(대부분 권한과 관련한 항목), 이후 Generate token하면 token이 생성됨, 토큰은 다시 볼 수 없으니 잘 기억하기

 

token입력 후 push 완료

 

test-dev 레포지토리에 README.txt파일 업데이트된 것 확인 가능


--  저장소의 내용을 pull한 후 내용을 변경하여 다시 push하기

clone을 위해 저장소의 주소를 복사

 

clone을 통해 test-dev에서 원격 저장소에 대한 리모트 설정 완료

 

test-dev라는 리포지토리를 내려받음

 

NIHAO라는 소스코드 추가

 

변동 사항이 많을 때는 .으로 test-dev 내의 모든 변동된 내용 추가

 

add된 내용을 commit

 

변경된 내용을 원격 저장소의 master 브랜치에 push

 

-- 원격 저장소의 새로운 commit을 로컬 저장소에서 갱신하기

=> 처음에 내려 받을 때는 git clone을 쓰지만, 이미 폴더 내에 리포지토리에 대한 정보를 가지고 있을 경우 

 

git-test폴더에서는 아직 NIHAO라는 내용 표시 안 됨

 

변경된 내용이 있으면 해당 내용을 가져오게 됨

 

README를 삭제하고 싶을 때

 

지울 때는 add 필요 없음

 

지운 내용을 push하여 원격 저장소에서도 지워지도록 함


-- Git Lab

 

vBox로 centos7 가져오기

 

네트워크 : 어댑터에 브리지 사용, 이후 vm 시작하여 mobaXterm 접속하기

 

IP를 정확하게 입력해야 함 : 추후 저장소의 IP가 됨

 

git lab설치 후 설치 시 기입했던 IP로 접속
cat /etc/gitlab/initial_root_password : 패스워드 출력됨, Username은 root로 하여 git lab에 로그인

 

Preferences
좌측 메뉴의 Password

 

 

패스워드 변경

 

-- 사용자 만들기

Register now, Register해도 관리자 승인 전에는 로그인 안 됨

 

root user로 로그인해서 Admin 클릭

 

좌측 메뉴에서 Users 클릭, Pending Approval에서 드롭다운 메뉴를 Approve로 변경해주기

 

다시 사용자 계정으로 로그인

 

--  A 사용자는 centos(로컬 저장소), B사용자는 Window

Create a project
Create blank project
내용 기입 후 Create project (프로젝트가 일종의 리포지토리)

 

centos에 git 설치 : yum install -y git

 

아직 일반 폴더

 

git-test 폴더를 로컬 저장소로 만듦

 

작업자의 정보 기입

 

add와commit

 

새로운 내용 추가 후 다시 한 번 add와 commit

 

git log를 통해 commit한 내역 확인 가능

 

commit ID 앞 부분 일부만 입력해도 checkout 가능

 

checkout을 통해 add site라는 commit 메시지를 줬을 때로 돌아감, git checkout -로 최근 작업 내역으로 돌아가기도 가능

 

git lab의 프로젝트 주소를 복사(git lab의 프로젝트는 git hub의 리포지토리와 유사)

 

 

push하기 전에 브랜치에 걸려 있는 protection을 Unprotected로 변경해야 함

 

Unprotacted => 이후 git branch -M main을 통해 origin을 main브랜치로 변경 후 git push origin main으로 push하기
B사용자가 clone

 

새로운 내용 추가

 

push까지 완료


--만약 이전에 등록된 Token이 있다면? (git push origin master  실행 시)

사용자 계정

 

Windows 자격 증명 관리

 

자격 증명 항목에 git.com과 관련한 증명 정보가 있다면 삭제 후 다시 git push origin master