728x90
반응형

개발/Git

깃 특정 커밋만 가져오는 방법 (How to use the "cherry-pick" command in Git)

실무를 하다보면 특정 브랜치에서 커밋했던 목록들 중 급하게 우선적으로 특정 커밋들만 내보내야 될 경우가 생길 수 있습니다. 이때 Git Cherry-Pick 명령어를 사용하면 손쉽게 특정 커밋을 가져올 수 있습니다. Cherry Pick? 다른 브랜치의 일부 커밋만 반영하고 싶을 때 사용하는 깃 명령어 TMI cherry pick이란, 체리 한 바구니에서 제일 좋은 체리만 고르는 것에서 유래한 표현 사용방법 아래와 같이 깃 히스토리가 있다고 가정해봅시다. feat/sentry 브랜치에서 a, b, c 기능들을 추가하고 커밋한 상태인데, 금일 릴리즈에 b 커밋만 우선적으로 올려야 될 경우가 생겼습니다. (굉장히 난감한 상황이쥬?) 이때 cherry-pick 명령어를 활용하면 아-주 깔끔하게 특정 커밋만 똑..

2022.10.03 게시됨

개발/Git

Github Actions 워킹 디렉토리 설정하는 방법 (working directory default)

모노레포 방식과 같이 하나의 레포지토리에 다양한 패키지나 앱들을 관리할 경우 특정 디렉토리만 Github Actions를 적용하고 싶은 경우가 있습니다. jobs에서 defaults의 working-directory를 설정하면 굉장히 쉽게 이 부분을 해결할 수 있습니다. defaults: run: working-directory: "./apps/my-test-app" 실제로 아래와 같이 실무에서 활용할 수 있습니다. "apps/my-test-app/**" 폴더에서 코드가 수정되고, develop 브랜치에 병합되면 해당 워크플로우가 실행됩니다. 이때 기본 워킹 디렉토리는 아래와 같이 "./apps/my-test-app"으로 설정되고, 깃허브 액션이 동작하게 됩니다. # .github/workflows/de..

2022.04.25 게시됨

개발/Git

깃 특정 태그로 이동하는 방법 (How to checkout Git Tags)

Git으로 작업할 때 개발자가 출시한 결과물에 대해 참조를 걸기 위해 태그를 만드는 것은 매우 일반적입니다. 예를 들어, 릴리스 버전에 대한 참조를 갖기 위해 버전을 명시한 태그가 생성됩니다. 브랜치나 커밋을 체크아웃하듯이 태그 또한 체크아웃이 가능하다는 점 알고 계셨나요? 이번 포스팅에서는 깃에서 특정 태그로 체크하는 방법에 대해서 다뤄보도록 하겠습니다. 체크아웃하는 방법 Git 태그를 체크아웃하려면 "git checkout" 명령어을 사용하고 체크아웃할 브랜치와 태그 이름을 지정합니다. // 태그 체크아웃 예시 git checkout tags/ -b 최신 태그 목록 가져오기 원격 저장소에 최신 태그 목록이 존재하는지 태그를 체크아웃하기 전 확인해야 합니다. 아래 명령어를 통해 원격 저장소에서 전체 태..

2021.01.19 게시됨

개발/Git

Git commit으로 issue 종료하는 방법 (close issue with commit)

Git(github, gitlab)과 같은 버전 관리 시스템을 활용하면 코드 관리 뿐만 아니라 팀원들과의 협업 또한 굉장히 효율적이게 진행할 수 있습니다. git에서 굉장히 자주 사용하는 명령어 중에는 commit이라는 명령어가 있는데요. Commit이란 우리가 추가, 수정, 삭제를 함으로써 코드를 변경한 이력들을 저장하는 행위입니다. commit으로 issue를 종료하는 방법 git commit 명령어를 통해 issue를 종료하는 방법은 굉장히 간단합니다. commit 명령어를 사용할 때 우리는 커밋 메시지를 작성하는데요. 커밋 메시지에 이슈 번호가 같이 기입되어 있는 경우 해당 이슈를 종료처리를 하게 됩니다. 일반적으로 git commit 명령어를 사용할 때는 아래와 같이 사용합니다. git comm..

2020.12.08 게시됨

개발/Git

.git/index.lock file exists 문제 해결하는 방법

git add 명령어를 사용하면 아래와 같은 에러가 발생하는 경우가 생깁니다. fatal: Unable to create '{your-file-path}/.git/index.lock': File exists. Another git process seems to be running in this repository, e.g. an editor opened by 'git commit'. Please make sure all processes are terminated then try again. If it still fails, a git process may have crashed in this repository earlier: remove the file manually to continue. 해결방법..

2020.12.04 게시됨

개발/Git

깃 커밋 메시지 컨벤션 (Git Commit Message Convention)

회사에서 팀 단위로 개발을 진행하거나 개인 토이 프로젝트를 하다보면 자연스럽게 Git과 같은 버전 관리 시스템을 사용하게 됩니다. 버전 관리 시스템을 사용한다면 특정 시점에 작업자의 수정사항이나 추가사항들을 명시하고 저장을 하는 행위인 커밋(commit)을 해야하죠. 하지만 바쁘다는 핑계로 또는 정말 단순히 컨벤션을 모른다는 이유로 커밋 메시지 작성을 소홀히 하지 않으셨나요? 저또한 회사에서 팀 동료들과 좀 더 긴밀하게 협업하기 위해 굉장히 기본적인 부분인 커밋 메시지 컨벤션부터 점검하고자 합니다. 커밋 메시지 컨벤션은 유다시티 커밋 메시지 컨벤션을 참고했고, 앞으로 커밋 메시지를 작성할 때 좋은 가이드가 될 수 있으니 참고해주시면 좋을 것 같습니다. Udacity Nanodegree Style Guid..

2020.11.20 게시됨

개발/Git

gitignore 캐시 삭제하기 (clear gitignore cache)

깃을 사용하다보면 .gitignore에 분명히 파일을 추가했는데 해당 파일을 계속 추적하는 경우가 있습니다. 이런 현상이 발생하는 이유는 .gitignore에 파일을 추가하기 전에 stage에 올라간 파일들은 캐시처리가 되어 기록이 남아있기 때문입니다. 아래 명령어로 캐시를 제거할 수 있습니다. git rm -r --cached . git add . git commit -m "clear git cache"

2020.02.14 게시됨

728x90
반응형