Git | GitLab 41

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

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

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

[Git] 특정 파일만 특정 버전으로 되돌리기

개요 원인은 잘 모르겠지만…… 서버에서 작업한 파일의 내용만 삭제되어 있는 것을 확인했다. 로컬 레포지터리에 여러 파일이 있지만 다른 파일은 최신 상태로 두고, 이상이 있는 파일만 특정 버전 상태로 되돌리고 싶다. 명령어 checkout 명령을 사용하면 원하는 파일만 원하는 버전으로 돌릴 수 있다. git checkout COMMIT_HASH FILE # 예시 git checkout 917b9e21cb3b6beb402427d49598d1dcd553bc87 ./src/test.py 참고 문서 https://computer-science-student.tistory.com/490 https://suwoni-codelab.com/git/2018/04/25/Git-checkout/

Git | GitLab 2023.06.30

[Git] stash - 작업 임시 저장

stash 로컬 레포지터리에 작업하던 중 다른 작업이 들어와 잠시 브랜치를 변경해야 할 일이 있다고 하자. 만약 아직 완료되지 않은 작업을 commit 하기 껄끄럽고, 다시 돌아와 작업을 이어나가고 싶다면 git stash 명령을 사용할 수 있다. stash 명령은 워킹 디렉터리에서 수정한 파일들에 대해서만 저장한다. 다시 말해 Modified면서 Tracked 상태인 파일과 staging area에 있는 파일만 Stash라는 공간에 저장한다. stash 하기 아래와 같이 하나의 파일은 Staging 상태고, 다른 파일은 Modified 상태인 저장소가 있다고 하자. 아직 commit할 수 있을 정도로 작업이 되지 않았기 때문에 stash나 stash save 명령어로 저장한다. git stash git..

Git | GitLab 2023.05.26

[Git] cherry-pick - fatal: bad revision

현상 2023.05.08 - [Git] cherry-pick - 특정 커밋 반영에서 살펴본 방법으로 다른 브랜치에 적용된 commit을 가져오려고 했더니 아래와 같은 에러가 발생했다. 해결 방법을 확인해 본다. 원인 로컬 레포지터리에서 가져올 커밋을 찾지 못하는 것이 원인이다. 지정한 commit hash 값에 오타가 있거나 레포지터리가 최신화되지 않았을 때 발생할 수 있다. 내 경우에는 후자가 원인이었다. 해결 방법 git pull을 할 때도 fetch를 먼저 하는 것과 동일하게, cherry-pick을 할 때도 fetch를 수행하면 된다. git fetch git cherry-pick 참고 문서 https://zetal.tistory.com/entry/git-cherry-pick-fatal-bad-r..

Git | GitLab 2023.05.09
1 2 3 4 5