Skip to content
Beside the Wheel
Search
Ctrl
K
Cancel
Email
GitHub
Select theme
Dark
Light
Auto
공부
(5)
spot 인스턴스에서 서버 가용성 개선하기
eBPF로 서버 성능 Profiling하는 법: Pyroscope의 구현 살펴보기
정수론부터 RSA까지
strace로 shaka-packager 버그 추적
Kubernetes The Hard Way
TIL
(956)
AI
(43)
DevOps
(230)
Network
(61)
OS
(155)
개발
(113)
데이터베이스
(64)
서버
(72)
수학
(20)
알고리즘
(24)
암호학
(32)
언어
(113)
컴퓨터구조
(5)
코드
(24)
독후감
(43)
과학
(1)
사회
(2)
산문
(3)
소설
(12)
인문
(11)
자기계발
(7)
철학
(7)
생각
(6)
고민
변화에 대하여
의식의 영역에 대하여
본질을 보려면
짧은 생각들
소유냐 존재냐
회고
(14)
2022.03-04 대덕소마고 입학소감/다짐
2022.05-08 프로젝트와 인간관계
2022.09-2023.02 불안과 판단
2023.03-07 DMS 리더 회고
2023.08-11 나는 누구인가?
2023.12 더 많은 걸 배우기 위한 경험
2024.01-02 회사 인턴 회고
2024.03-04 고3 근황
2024.05-07 고등학교 마무리
2024.08-12 첫 회사
2025.01-03 입출력
2025.03-08 효능감이란 무엇일까
2025.09-12 연말회고
2026.01-08 담론
Email
GitHub
Select theme
Dark
Light
Auto
태그: git
총 12개의 글이 있습니다.
Git LFS
git
2026. 3. 11.
Git LFS(Large File Storage)는 대용량 파일을 Git 저장소에서 효율적으로 관리하기 위한 Git 확장 도구이다. Git은 모든 파일의 전체 히스토리를 로컬에 저장하는 분산 버전 관리 시스템이다. 그런데 바이너리 파일이나 대용량 미디어 파일처럼 크기가 큰 파일이 저장소에 포함되면, clone이나 fetch 시 모든 버전을 다운로드해야 하므로 저장소 크기가 급격히 커지고 속도가 느려진다. Git LFS는 이 문제를 해결한다. Git LFS는 대용량 파일의 실제 콘텐츠를 별도의 원격 스토리지에 저장하고, Git 저장소에는 해당 파일을 가리키는 작은 포인터 파일만 커밋하는 것이다. 예시 version oi
rebase 쉽게 하는법
git
2025. 3. 6.
rebase via merge Let me share one possible way to resolve rebase conflicts. I call it rebase via merge. It can help if you want to rebase a branch with many commits and many conflicts are expected. First, let's create a temp branch and force all conflicts to show up with a regular merge git checkout -b temp git merge origin/master Resolve all the conflicts the regular way and finish
rerere
git
2025. 3. 5.
git rerere는 비교적 장기간 유지되는 토픽 브랜치를 사용하는 워크플로우에서 동일한 충돌을 반복적으로 해결해야 하는 문제를 해결하기 위한 도구이다. 토픽 브랜치가 "release" 브랜치에 병합되거나 업스트림에 전송되어 승인될 때까지, 개발자는 종종 같은 충돌을 여러 번 해결해야 한다. 이 명령어는 최초 수동 병합 시 충돌이 발생한 자동 병합 결과와 그에 대응하는 수동 해결 결과를 기록하고, 이후 동일한 충돌이 발생했을 때 이전에 기록된 해결 방법을 자동으로 적용한다. 주의: 이 명령어를 사용하려면 `rerere.enabled` 설정 변수를 활성화해야 한다. --- 명령어 일반적으로 `git rerere`는 인자 없이 또는 사용자 개입 없이 실행된다. 하지만 작업 상태와 상호작용할 수
git reflog
git
2024. 11. 22.
git branch를 실수로 reset하여 복구하고 싶을 때가 있다. 그런 경우 `git reflog`를 사용해 특정 명령어 실행 전의 코드로 돌아갈 수 있다. (`git log -g --abbrev-commit --pretty=oneline`도 사용할 수 있다.) $ git reflog a1b2c3d (HEAD -wip/goofy, origin/develop, origin/HEAD) HEAD@{0}: checkout: moving from wip/goofy to develop a1b2c3d (HEAD -wip/goofy, origin/develop, origin/HEAD) HEAD@{1}: reset: moving to a1b2c3d7aa62eaab5fdc1dfa83993d9b9e78bde5 c
GitFlow
flow
2024. 3. 13.
Git Flow 는 2010년 Vincent Driessen 이 작성한 블로그 글을 통해 유명해지기 시작한 Git Branching Model중 하나로, Git의 사용 방법론이다. GitFlow는 프로젝트를 런칭한 이후에도 코드를 관리하기 용이하게 하고, 프로젝트에서 발생하는 다영한 워크플로우의 구현이 가능하기 떄문에 많은 개발자들이 사용하는 방법론으로 자리잡게 되었다. 에디터와 IDE에서 플러그인으로 지원하는 경우도 많다. 브랜치의 종류가 많아 복잡하고, release와 master의 구분이 모호하기도 하지만 프로젝트의 규모가 커지면 커질수록 소스코드를 관리하기에 용이하다는 장점이 있다. --- GitFlow의 브랜치 Git Flow는 크게 5개의 branch 를 사용한다. 그중 가장 중심이
GithubFlow
flow
2024. 3. 13.
GitFlow의 브랜치 전략의 복잡한 부분을 생략하여 간략화한 브랜치 전략이다. github flow는 master 브랜치 하나만을 가지고 진행하는 방식이다. GitHub Flow는 `master`와 `feature`, 두개의 브랜치로 나뉜다. Github Flow의 개발 과정은 다음과 같다. 1. master 브랜치에서 개발이 시작된다. 2. 기능이나 버그에 대해 issue를 작성한다. 3. 팀원들이 issue 해결을 위해 master 브랜치에서 생성한 `feature/{구현기능}` 브랜치에서 개발을 진행하고 커밋한다. 4. 개발한 코드를 master 브랜치에 병합할 수 있도록 요청을 보낸다. 즉, pull request를 날린다. 5. pull request를 통해 팀원들간에
GitLab
git
2024. 3. 13.
Gitlab은 Git의 원격 저장소와 코드 리뷰, 이슈 트래커 기능등을 제공하는 소프트웨어로, 설치형 Github라는 컨셉으로 시작된 프로젝트이기 때문에 Github와 비슷한 면이 많다. 1. 패키지 종류 GitLab 패키지는 3가지로 구분된다. GitLab CE : Community Edition으로 설치형이고 아무런 제한 없이 무료 GitLab EE : Enterprise Edition으로 설치형이고 매월 유저당 과금 [(참고)]( GitLab.com : 클라우드형이고 개인이 가입해서 사용하면 무료 2. 기능 Git 저장소 및 관리 프로젝트 생성하면 자동으로 git 저장소가 생성됨 그룹 및 팀원 그룹을 만들고 팀원을 지정
githook을 위한 perl command
hooks
2024. 3. 13.
perl option Perl은 심플한 프로그래밍 언어 중 하나이다. CLI에서 `perl` 명령어를 통해 짧은 스크립트를 실행할 수 있다. 아래와 같이 텍스트 대치 등 간단한 처리 스크립트를 작성하는 데 사용하기 좋다. bash perl -p0e 's/__PROJECT_TREE__/`cat`/se' "$readme_template" "$readme" 1. 실행 제어 -e : 스크립트로서 실행할 스트링을 지정하여 Command Line에서 수행 -M : 펄 모듈을 로드하는 옵션이며, Default Import 하지 않을 경우 -m 옵션을 사용 -l : 표준 장소 앞에서 모듈을 검색하기 위한 디렉토리 지정 -c : 펄 프로그램을 컴파일(실행전
GitHub hooks
hooks
2024. 3. 13.
Git에서는 어떤 이벤트가 생겼을 때 자동으로 특정 스크립트를 실행하도록 할 수 있다. 이 훅은 클라이언트 훅과 서버 훅으로 나눌 수 있는데, 클라이언트 훅은 커밋이나 Merge 할 때 실행되고 서버 훅은 Push 할 때 서버에서 실행된다. 프로젝트의 `.git/hooks` 폴더에 들어가서 해당 훅의 이름을 파일명으로 쉘스크립트를 작성하면, 해당 훅이 특정 상황에 자동으로 실행된다. 분류에 따른 훅은 아래 표와 같다. Commit workflow hook |훅|설명| |-|-| |pre-commit|commit 을 실행하기 전에 실행| |prepare-commit-msg|commit 메시지를 생성하고 편집기를 실행하기 전에 실행| |commit-msg|commit 메시지를 완성한 후 com
파일트리 자동생성
hooks
2024. 3. 13.
레포지토리 폴더에 `.git/hook/pre-commit` 파일을 생성하여 아래 스크립트를 넣으면 커밋시에 README.md 파일에 트리가 자동으로 생성된다. (mac 기준) bash !/bin/bash export LANG=UTF-8 function generate_project_tree() { tree /Users/rlaisqls/Documents/github/TIL -tf --noreport -I '~' --charset ascii $1 | gsed -e 's/[|]-\+/╊━/g' | gsed -e 's/[|]/┃/g' | gsed -e 's/[`]/┗━/g' | gsed -e 's/[-]/━/g' | gsed -e 's:\(━ \)\(\(.*/\)
Selfhosted Runner
git
2024. 3. 13.
Self-hosted Runner란 Github Actions에서 사용자가 지정하는 로컬 컴퓨팅 자원으로 빌드를 수행하도록 설정하는 기능이다. 주로 배포작업이 많아 배포가 지체되거나 서버 비용이 부담되는 경우 사용한다. 설정 방법 Github Actions을 사용하고자 하는 저장소에서 Settings Actions Runners로 이동한다. 설정하고자 하는 로컬 머신에 해당되는 OS를 선택하면 OS 별로 설정하는 방법이 Download와 Configure란에 설명되어 있다. Linux 기준으로는 다음과 같다. Download bash Create a folder $ mkdir actions-runner && cd actions-runner Download the latest runne
자동커밋
git
2024. 3. 13.
기존 TIL Repository는 파일을 추가하거나 수정한 뒤 수동으로 커밋하는 방식으로 운영했다. 하지만 혼자 작성하다보니 버전 관리에 대한 이점도 크게 없고, 생성이나 수정에 대한 커밋을 각각 나눠서 하는게 번거로워서 그냥 하루에 한 번씩 local crontab을 돌려 자동으로 커밋하도록 하는 쉘 스크립트를 작성하였다. 크게 복잡한 내용은 없고 그냥 `git . add` 한 뒤 커밋하는 것이 전부이다. 단, 작성중이어서 커밋하면 안되는 파일은 접두사에 `+`를 붙여서 표기하고 gitignore에 커밋되지 않도록 설정해줬다. `+`로 정한 이유는 명령어상 다른 특별한 의미가 없으면서 파일명 앞에 들어갈 일이 없을 것 같은 기호였기 때문이다. `+autocommit.sh`를 정의한다. bas