Node.js 기반으로 작성된 Git 스크립트 모음입니다.
자주 사용하는 Git 작업들을 간편하게 수행할 수 있도록 브랜치 삭제, 전환, 전체 모듈 리베이스 및 현재 브랜치 리베이스, 푸시 등의 명령을 자동화합니다.
cd ~
git clone https://github.com/Jwhyee/git-scripts.gitcd ~
code .gitconfig
code명령어를 사용할 수 없는 경우
vim혹은notepad명령어 사용code커맨드 활성화 - 맥(cmd), 윈도우(ctrl) 동일
[alias]
b = "!sh -c 'node ~/git-scripts/branch.js \"$@\"' dummy"
s = "!sh -c 'node ~/git-scripts/switch.js \"$@\"' dummy"
r = "!sh -c 'node ~/git-scripts/rebase.js \"$@\"' dummy"
p = "!sh -c 'node ~/git-scripts/push.js \"$@\"' dummy"
clear = "!sh -c 'node ~/git-scripts/clear.js'"사용 가능한 명령어:
git b --list: 로컬 브랜치 목록 조회git b -d <keyword>: 키워드 포함 브랜치 일괄 삭제
기존의 git branch --list 명령을 간소화한 버전으로,
현재 존재하는 모든 로컬 브랜치를 한눈에 보여줍니다.
특정 키워드를 포함한 브랜치들을 찾아 자동으로 삭제합니다.
예를 들어 git b -d feat는 feat가 포함된 브랜치들을 찾아서 제거하며,
삭제된 브랜치는 branches.json에서도 자동으로 정리됩니다.
사용 가능한 명령어:
git s <branch>: 기존 로컬 브랜치로 전환git s -c <new-branch>: 새 브랜치 생성 후 전환 (parent 기록됨)
기존의 git switch <branch> 명령을 그대로 감싼 단축 명령입니다.
로컬에 존재하는 브랜치로 빠르게 이동할 수 있습니다.
git switch -c <new-branch> <current> 명령을 대체합니다.
현재 브랜치를 기준으로 새 브랜치를 생성하고 바로 전환합니다.
추가로, 두 브랜치의 관계를 branches.json에 기록하여
git r parent 시 자동 리베이스 기준으로 사용할 수 있도록 합니다.
사용 가능한 명령어:
git r this: 현재 브랜치를 기준으로 rebasegit r all: 현재 디렉토리 + 하위 Git 저장소 모두 rebasegit r parent:branches.json기준 부모 브랜치로 rebase
기존의 git fetch + git rebase를 자동화합니다.
현재 체크아웃된 브랜치 기준으로 최신 상태를 가져와 병합합니다.
하위 디렉토리에 .git 폴더가 존재하는 저장소까지 순회하며
각각에 대해 git fetch && git rebase를 수행합니다.
모노레포 환경 또는 Git 서브디렉토리 구조에 유용합니다.
upstream이 아닌, git s -c을 통해 기록된 branches.json을 기준으로
논리적인 부모 브랜치로부터 fetch & rebase를 수행합니다.
브랜치 생성 당시의 base 브랜치를 그대로 따라가므로,
복잡한 브랜치 전략을 사용해도 정확하게 동작합니다.
사용 가능한 명령어:
git p this: 현재 브랜치 푸시git p this -f: 강제 푸시
기존의 git push origin HEAD를 단순화한 명령입니다.
현재 브랜치를 원격 저장소에 푸시합니다.
git push origin HEAD --force와 동일하게 동작하며,
강제로 커밋을 밀어야 하는 상황에서 유용합니다.
- 명령어 실행 전, 현재 디렉토리가 Git 루트인지 확인하세요.
branches.json은 브랜치 생성(git s -c) 및 삭제(git b -d) 시 자동으로 관리됩니다.- Windows 환경에서는 Git Bash 또는 PowerShell 사용을 권장합니다.