[Gitlab] Gitlab API로 Merge Request 가져오기 CLI로 Merge Request의 리스트를 가져와야 했다. git cli로 모든 병합 요청을 가져올 때 사용하는 명령어는 다음과 같다. git ls-remote origin 'refs/merge-requests/*/head' git ls-remote origin 'refs/merge-requests/*/merge' 나는 Open 상태의 Merge Request만 가져오고 싶었는데, CLI로는 방법을 찾지 못했다. 알아보니 Gitlab API를 사용하면 상태가 open인 MR을 가지고 올 수 있었다. https://docs.gitlab.com/ee/api/merge_requests.html#list-project-merge-reque..
[Git] Stash git stash는 파일의 변경 내용을 일시적으로 기록해두는 영역이다. commit을 하기 이전에 작업을 진행 중일 때, git stash로 현재 변경했던 내용들을 일시적으로 저장을 할 수 있다. 작업을 처리 후 임시 저장한 내용들을 다시 불러와 작업을 이어서 할 수 있다. stash 저장 git status를 통해 확인되는 변경된 내용들을 저장 할 수 있다. git stash push -m "message" git stash save "message" #save 생략 가능 git stash 변경 내용을 임시 저장을 하는 것이기 때문에 새롭게 추가된 파일(untracked file)인 경우는 stash를 통해 저장되지 않는다. stash 목록 조회 stash는 stack 형태로 최근..
[Git] switch/restore Git 2.23에서 checkout을 대신 할 switch, restore가 도입되었다고 한다. checkout이 대체된 이유는 하나의 명령어가 가진 기능이 너무 많기 때문이라고 한다. 명령어 설명 checkout Switch branches or restore working tree files switch Switch branches restore Restore working tree files git switch switch는 checkout에서 브랜치를 변경하는 부분만 담당한다. git switch master checkout의 -b 옵션처럼 -c 옵션으로 브랜치 생성 후 바로 전환이 가능하다. git switch -c new-branch 특정 브랜치나 거밋에서..
[Git] Merge Request command Line으로 생성하기 자동으로 MR 생성을 해야하는 과제가 있었다. 찾아보니 gitlab 11.10 부터 git 2.10 이상을 사용하는 경우, 다음과 같이 CLI로 Merge Request를 생성할 수 있었다. git push -o merge_request.create 함께 사용할 수 있는 옵션들은 다음과 같다. git push \ -o merge_request.create \ -o merge_request.remove_source_branch \ -o merge_request.title="[Title]" -o merge_request.description="[Description]" -o merge_request.targe=[target branch ..
[Git] restore, revert, reset 과거의 커밋에 관하여 실수를 하여 되돌아가고 싶을 때, restore, revert, reset을 사용하면 된다. restore 최근 commit된 상태로 현재 파일의 수정 내역을 되돌린다. git restore 파일명 파일의 특정 커밋 아이디 시점으로 복구한다. git restore --source 커밋아이디 파일명 복구와 관계없이 특정 파일의 staging을 취소한다. git restore --staged 파일명 revert 과거의 어떤 코드의 commit을 취소하고 싶을 때 사용한다. 커밋 아이디에서 일어난 일만 취소한다. (새로운 커밋이 생성되고 해당 아이디의 작업 삭제) git revery 커밋아이디 reset 과거 어떤 코드의 commit으로..
[Jenkins] Job copy하기 Jenkins에서 똑같은 빌드에 환경만 다르게 설정을 해야할 때가 있을때, Job Copy를 사용하면 편리하다. 사용법은 굉장히 간단한데 Jenkins에서 새로운 Item을 누른후 새로 생성할 Job의 이름을 입력하고 아래에 Copy할 Job의 이름을 입력하면 구성이 그대로 복사된다
[Git] 상태(status) 확인하기 Git에 의해 관리되는 파일들의 상태(status)에 대해 정리해보고자 한다. Tracked, Untracked 워킹 디렉토리의 파일은 크게 Untracked, Tracked의 두 가지 상태로 나뉜다. 파일에 수정이 일어나면 Git이 파일의 변경을 감지하여 Tracked 상태가 된다. 반대로, 파일을 저장 할 필요가 없어 Git이 신경쓰지 않아도 되는 상태를 Untracked 라고한다. 파일을 새로 만들 경우 Untracked 상태가 되며, git add 명령어를 사용하면 git이 파일을 추적하는 상태가 된다. Unmodified, Modified, Staged Tracked 상태의 파일들은 다시 크게 Unmodified, Modified, Staged 로 나뉜다...
[Jenkins] Execute Shell 사용하기 젠킨스에서 스크립트로 실행할 수 있는 간단한 작업이라면, Execute Shell로 쉘 스크립트를 실행 할 수 있다. 새로운 프로젝트 생성 새로운 item을 클릭한 후 Freestyle project로 생성한다. 환경 구성 여러가지 환경 설정을 할 수가있는데 빌드 로그가 쌓이지 않도록 오래된 빌드 삭제를 해준다 (선택사항) 빌드 환경에서 Use secret text(s) or file(s) 를 선택하면 jenkins Credential에 등록된 시크릿 텍스트/파일을 환경 변수로 불러와서 사용이 가능하다. Inject environment variables to the build process에서 환경 변수를 설정하면, 스크립트에 작성하지 않고도 환경 변..
[Git] 특정 브랜치 clone 하기 브랜치가 여러개일때, 서버에서 git clone을 하면 default 브랜치가 클론된다. 그렇다면 내가 원하는 특정 branch를 clone하기 위해선 어떻게 해야할까? git clone --branch git clone -b 위 명령어를 사용하면 원격저장소에 있는 모든 브랜치를 fetch한 후 원하는 브랜치로 전환된다. 모든 브랜치를 fetch하는 것을 원하지 않으면 다음과 같은 방법을 사용하면 된다. git clone --branch --single-branch git clone --b --single-branch 위 명령어를 사용하면 특정 branch만 fetch한다. 여담으로 특정 파일만 pull을 받아오고싶으면 다음과 같이 사용할 수 있다. git chec..
(1) configure & Jenkinsfile (2) Pytest & Docker Image Build [Jenkins] Pipeline 구성 (2) Pipeline & lint 1. 파이프라인 생성 빌드를 하기 위해선 파이프라인을 먼저 생성해줘야한다. 대시보드에서에서 새로운 Item을 클릭한 후 이름을 입력 하고 Pipeline을 선택 빌드유발은 Github webhook을 통해서 push 이벤트가 발생했을 시 트리거되도록 설정한다. 아래 사진과 같이 파이프라인을 스크립트로 작성을 해도 되지만 나는 Git에 있는 Jenkinsfile을 불러오도록 구성을 했다. Pipeline script from SCM을 선택해준 후 저장소 URL을 입력하고 인증 정보를 선택한다. 빌드를 할 소스코드가 있는 bra..