Git | GitLab 44

[GitLab] API로 원격 저장소 파일 읽기

개요 GitLab 저장소에 저장되어 있는 파일을 클론하지 않고 내용을 확인하고 싶다. 웹 요청이나 API를 통해 확인할 수 있을 것 같은데, 이 글에서는 GitLab API를 이용해 레포지터리에 저장된 파일 정보를 확인해본다. 원격지 파일 정보 확인 원격 저장소에 저장된 파일에 대한 정보는 다음의 url로 요청할 수 있다. 요청 시 원격지 프로젝트의 아이디 값과 확인할 파일의 경로를 지정해주어야 하는데, 파일에 경로에는 branch 정보도 포함되어야 한다. branch 정보는 ref 속성으로 지정한다. GET /projects/:id/repository/files/:file_path # 예시 curl --header "PRIVATE-TOKEN: " "https://gitlab.example.com/api..

Git | GitLab 2024.05.09

[GitLab] API로 MR 업데이트하기

개요 2024.01.05-[GitLab] git cli로 Merge Request 생성에서 Git Push와 함께 MR 생성을 자동화할 수 있도록 CLI로 작업을 해봤는데, 이후 동작에서 이미 생성되어 있는 MR 정보를 갱신해야 할 필요가 생겼다. GitLab API를 이용해 특정 프로젝트의 MR을 찾아 업데이트하는 방법을 정리한다. 예시로 파이썬으로 구현해둔다. MR 업데이트 공식 문서에 의하면 MR을 업데이트할 때는 아래와 같은 URL에 Put 요청을 하면 된다. project의 id와 mr의 id는 필수값이고, 업데이트할 값에 해당하는 labels, assignee_id, title, description 등등의 여러 값은 필요에 맞게 전달하면 된다. PUT /projects/:id/merge_re..

Git | GitLab 2024.05.03

[GitLab] CLI로 fork 저장소 MR 생성 시 업스트림 저장소에 생성되는 문제

개요 2024.01.05-[GitLab] git cli로 Merge Request 생성에서 CLI를 이용해 MR을 생성하는 방법을 정리했다. 해당 부분을 프로그램 상에서 테스트하기 위해 공통 저장소를 Fork한 뒤, Fork 저장소로 MR 생성을 시도해보았는데……Fork 저장소가 아니라 원본(업스트림) 저장소를 대상으로 MR이 생성되는 현상을 확인했다. 원인을 파악하고 해결해본다. 원인 사실 달리 원인이 있던 것은 아니고…… push_option을 사용해 MR을 생성할 프로젝트를 지정할 수 있는 기능이 비교적 최근에 개발되었다. 아무래도 처음 merge_request 관련 옵션을 개발할 때 Fork 저장소에서 업스트림 저장소를 대상으로 MR이 생성된다는 사용자 시나리오를 생각하고 개발한 것 같다. 그 이..

Git | GitLab 2024.05.02

[GitLab] 프로젝트 ID 확인하기

개요GitLab API를 이용해 프로젝트에 대한 작업이 필요한데, 일반적으로 프로젝트에 대한 작업은 프로젝트 ID를 지정하게끔 되어 있는 것 같다. 이 글에서는 GitLab 프로젝트 ID를 확인하는 방법에 대해 적어둔다.  웹에서 확인프로젝트 ID는 웹에서 간단하게 확인할 수 있다. 버전에 따라 위치는 다르지만 GitLab 프로젝트의 메인 페이지에서 확인할 수 있다.또는 프로젝트의 General Settings 페이지에서 확인할 수도 있다.   API로 확인GitLab API를 통해서도 확인할 수 있다.사실 이 글에서 기록해두려고 했던 바가 이 방법이다. 조금 더 정확하게는 프로젝트의 네임스페이스와 이름을 가지고 프로젝트 ID를 찾는 방법을 적어둔다.https:///api/v4/groups//projec..

Git | GitLab 2024.04.25

[GitHub] CLI로 토큰 지정하여 push하기

개요 Git Bash나 Linux 서버 등에서 CLI를 이용해 작업한 commit을 원격 저장소로 push 할 때 터미널 입력으로 사용자 인증 과정을 거치는 경우가 있다. 사람이 직접 push를 수행하는 경우에는 상관없지만, 스크립트 등으로 자동화를 하는 경우에는 사용자 인증 정보를 포함하여 push 명령을 수행해야 한다. 따라서 이 글에서는 사용자 인증 정보에 해당하는 GitHub Access Token을 Git push 명령어에 포함시키는 방법을 적어둔다. GitHub Access Token 생성 사용자 인증에 사용할 Token을 발급받는다. 1. GitHub Settings 페이지로 이동 GitHub에 로그인한 뒤 오른쪽 상단의 개인 메뉴에서 Settings를 클릭한다. 2. Developer se..

Git | GitLab 2024.03.28

[GitLab] git cli로 Merge Request 생성

개요 로컬 GitLab 레포지터리에서 발생한 수정 사항을 원격지에 Push 하고 싶다. Branch 전략에 의해 master/main 브랜치에 직접 push하는 게 아니라 Merge Request를 통해 수정 사항을 반영하려고 하는데, 이 과정을 자동화할 수 있었으면 한다. 혹시 Git CLI 등으로 MR을 생성할 수 있는지, 어떻게 하는지 정리한다. git push -o 구글링과 공식 문서에 의하면 Git 2.10 이상 GitLab 11.10부터 push 명령에 옵션을 추가하여 MR을 생성할 수 있다고 한다. git push --push-option= # 또는 git push -o 사용할 수 있는 옵션은 여러가지인데 MR 생성과 설정에 대한 기본적인 옵션 정도만 살펴봤다. git push \ -o me..

Git | GitLab 2024.01.30

[Git] 특정 브랜치만 클론하기

개요 Git 레포지터리를 로컬로 클론 하면 기본적으로 초기 브랜치를 체크아웃한다. 클론 시 실제로 사용할 브랜치로 체크아웃하는 방법을 적어둔다. 방법 clone 명령어에 -b, --branch 옵션으로 클론할 브랜치를 지정한다. git clone -b # -b, --branch : 새로 생성되는 HEAD가 레포지터리의 HEAD 대신 name 브랜치를 가리킨다. # 베어 저장소가 아니면 해당 브랜치가 체크아웃되는 브랜치이다. 예시 다음과 같이 main 브랜치와, b20220627 브랜치 등이 존재하는 레포지터리가 존재하고, main 브랜치가 아닌 b202220627 브랜치에서 작업해야 한다고 가정하자. 이 경우 다음과 같이 브랜치를 지정해 클론할 수 있다. git clone -b b20220627 http..

Git | GitLab 2023.10.05

[Git] sparsecheckout - 하위 디렉터리만 클론

sparsecheckout Git을 사용하다보면 레포지터리의 내용 전체가 아니라 일부 경로만 필요한 경우가 종종 있다. 이때 sparsecheckout 기능을 사용하면 필요한 경로만 관리할 수 있다. 비교적 최신 버전의 git에서 사용할 수 있다. 사용법 보통 신규 디렉터리를 만들어 git init 후 사용하는 것 같은데, 이 글에서는 checkout 없이 git을 클론 하여 사용해 본다. 예시로 사진의 Algorithm 레포지터리의 백준 디렉터리만 로컬 저장소고 가져와보자. 1. checkout 없이 클론 git clone -n # 예시 git clone -n https://github.com/jinyuo/Algorithm.git 로컬 저장소에 git 설정 파일 경로만 있고 내용물은 없는 것을 확인할 ..

Git | GitLab 2023.08.21

[Git] git clone 옵션

git clone git 레포지터리를 클론 할 때 크게 네 가지 옵션을 주어 클론 하는 것 같다. git clone git clone --no-checkout git clone --bare git clone --mirror git clone 명령을 사용할 때 -no-checkout 옵션을 사용하게 됐는데, 공식 문서를 봐도 이해가 잘 가지 않아서 정리해 본다. git clone 옵션 별 동작 방식 git clone 옵션 없이 clone을 수행하면 각 브랜치에 대한 remote-tracking 브랜치를 만들고, 초기 브랜치(master)를 만들고 checkout 한다. 즉, working tree에 소스를 다운로드한다. git clone --no-checkout checkout을 수행하는 부분을 제외하고 ..

Git | GitLab 2023.08.18

[Git] 원격 저장소 주소 변경

개요 회사의 전사 GitLab 주소가 변경되어 로컬 저장소에서 원격 저장소의 주소를 변경해야 한다. 방법을 적어둔다. 원격 저장소 정보 확인 git remote -v로 저장소 이름과 주소를 확인할 수 있다. 등록된 주소가 여러 개라면 등록된 저장소를 전부 출력한다. git remote -v 원격 저장소 주소 확인 원격 저장소의 URL을 확인할 때는 remote get-url 명령을 사용할 수 있다. git remote get-url remote set-url 원격 저장소의 URL을 변경한다. 을 지정하지 않으면 첫 번째 URL을 로 변경한다. --add 옵션을 사용하면 새 URL을 추가한다. usage: git remote set-url [--push] [] or: git remote set-url --..

Git | GitLab 2023.08.07
1 2 3 4 5