커밋시 GitHub Actions 스킵하는 방법

Intro코드와 관계없는 파일을 살짝 고치거나 README.md 파일만 업데이트했을 뿐인데, 매번 CI가 돌아가면서 빌드에 3~5분, 배포까지 하면 더 길어지는 시간. 이런 불필요한 CI 실행 때문에 리소스 낭비도 되고, 워크플로우 실행 제한에 걸리는 경우도 있다.이번 글에서는 GitHub 공식 문서에 나온 내용을 바탕으로, CI를 스킵하는 여러 방법과 주의사항까지 정리해본다.방법1: 커밋 메시지워크플로우가 on: push나 on: pull_request에 의해 실행되는 경우, 커밋 메시지에 아래 키워드 중 하나라도 포함시키면 해당 워크플로우는 자동으로 실행되지 않는다.사용할 수 있는 키워드[skip ci][ci skip][no ci][skip actions][actions skip]예시git commi..

Development/Git 2025.05.13
Git Submodule 최신 커밋으로 업데이트

IntroGit submodule은 프로젝트 안에 다른 Git 저장소를 포함할 때 유용하게 쓰인다. 하지만 서브모듈은 특정 커밋에 고정되기 때문에 메인 저장소를 업데이트해도 서브모듈이 자동으로 최신 상태로 업데이트 되지 않는다. 아래의 경우에 속한다면 불편함을 겪고 있었을 거라 생각한다.프로젝트에 외부 라이브러리나 모듈이 포함된 경우서브모듈이 자주 업데이트되는 상황에서 최신 상태를 유지하고 싶을 때여러 서브모듈이 있어 일일이 들어가서 업데이트하기 번거로울 때서브모듈을 최신 커밋으로 업데이트할 때, 하나씩 디렉터리에 들어가서 업데이트하지 않고, 명령어 하나로 깔끔하게 처리하는 방법을 알아보자.서브모듈 업데이트1. 서브모듈 초기화 및 업데이트우선, 서브모듈이 아직 초기화되지 않았다면 초기화부터 해주자.git..

Development/Git 2024.11.25
Git에서 마지막 커밋 취소하기

IntroGit을 사용하다 보면 의도와 다르게 커밋을 하거나, 잘못된 브랜치에서 커밋을 진행하는 실수를 할 때가 있다. 이렇게 한 번 커밋을 하고 나면 --amend 옵션으로 이미 커밋한 내용을 수정하고, force push로 덮을 수 있지만 때로는 커밋 자체를 완전히 취소해야 할 경우도 있다.이 글에서는 실수로 커밋한 내용을 되돌리기 위한 방법들을 예시와 함께 살펴보고, 각 상황에서 주의할 점에 대해 정리한다.실습커밋을 취소해야 하는 상황커밋 취소가 필요한 상황은 다양하다. 다음과 같은 경우가 대표적이다.커밋을 했으나 수정할 내용이 있다: 커밋 메시지나 커밋된 내용에 빠진 부분이 있다면 --amend 옵션을 사용하여 커밋을 수정할 수 있다.잘못된 브랜치에서 커밋을 한 경우: 작업 브랜치가 아닌 다른 브..

Development/Git 2024.11.09
[Git] 특정 코드 변경 사항 검색하기

Intro Pebble Template 에는 Macro라는 기능이 있습니다. 특정 콘텐츠 블록을 재 사용 가능한 함수처럼 만들어 주는 건데, 이전에 코드를 수정하다 보니 macro를 통째로 날려버렸는지 사용하는 부분만 남아있고 선언된 부분이 없어서 코드가 깨져 있는 부분을 발견했습니다. facet() 이라는 이름의 매크로인데, 어디에 선언되어 있었는지를 정확히 알지 못해서 커밋 히스토리를 찾아내는데 어려움을 겪고 있었습니다. Git 로그에서 파일 변경 내용 중 특정 키워드를 검색하는 방법에 대해서 알아보겠습니다. Git grep 단순 git grep 을 활용하면 해당 검색 조건이 포함된 파일들을 찾아 줍니다. 예를 들어 아래와 같이 입력 하면 git grep shane shane 이라는 텍스트가 들어간 ..

Development/Git 2022.09.15
[Git] lightweight 태그와 annotated Tags

Intro 진행중인 프로젝트의 본격적인 버전 관리에 앞서 해당 스프링부트 어플리케이션에서 git 정보를 토대로 최근 커밋 해시값, 날짜, 버전(태그명) 등을 불러 올 수 있게끔 기능을 추가 해 두었습니다. 그런데 아무리 새로운 태그를 달아 주어도 이전의 태그명이 나오는 문제가 있었고 약간의 검색을 통해 그 차이가 lightweight 와 annotated 때문이었다는걸 알게 되었습니다. 분명 describe --tags 를 입력 할 때는 4.2 버전이 나오지만 git describe 만 입력 했을때는 가장 가까운 3.2 버전으로부터 128 번째 커밋이라는 정보가 나왔습니다. describe 명령은 커밋에서 도달 할 수 있는 가장 최근의 태그를 찾는데요, 태그가 커밋을 가리키는 경우에는 태그만 표시되지만,..

Development/Git 2022.06.27