인터랙티브 기능을 갖춘 포괄적인 Git 워크플로우 향상 도구입니다.
~/sh-kit/
├── bin/
│ └── gt -> ../git/git-tools.sh # 실행 가능한 명령어로의 심볼릭 링크
└── git/
├── README.md # 영어 문서 (Git 도구 문서)
├── README.kr.md # 이 파일 (한국어 Git 도구 문서)
├── CLAUDE.md # Claude Code 개발 가이드
└── git-tools.sh # 통합된 Git 도구 스크립트
git/git-tools.sh: 모든 Git 도구가 통합된 단일 스크립트bin/gt: git-tools.sh로의 심볼릭 링크 (PATH에서 직접 실행 가능)
gt branch-tools(또는gt bb) - 브랜치 관리gt branch-select- 인터랙티브 브랜치 선택gt branch-list- 브랜치 목록gt branch-clean- 스쿼시 머지된 브랜치 삭제
gt commit-select(또는gt c-s) - 인터랙티브 커밋 선택
gt diff-tools- 파일 diff 및 스테이징 도구gt diff-select- 스테이징할 파일 선택gt diff-unselect- 언스테이징할 파일 선택
gt stash-tools- stash 관리
gt sync- 원격 브랜치와 동기화gt update- rebase로 업데이트
gt force-push-chain(또는gt pfc) - 인터랙티브 다중 브랜치 force pushgt replay-onto- 브랜치로 커밋 replaygt replay-onto-main- 메인으로 커밋 replaygt tag-refresh- 인터랙티브 태그 갱신
gt doctor- 의존성 체크
# 1. 레포지토리 클론 (원하는 위치에)
git clone <repository-url> sh-kit
cd sh-kit
# 2. 심볼릭 링크 생성 (아직 없다면)
ln -s ../git/git-tools.sh bin/gt
# 3. .zshrc에 PATH 추가
# 현재 디렉토리 경로를 자동으로 사용하려면:
echo "export SH_KIT_HOME=\"$(pwd)\"" >> ~/.zshrc
echo "export PATH=\"\$SH_KIT_HOME/bin:\$PATH\"" >> ~/.zshrc
# 또는 수동으로 .zshrc 편집:
# export SH_KIT_HOME="/path/to/your/cloned/directory"
# export PATH="$SH_KIT_HOME/bin:$PATH"
# 4. 쉘 재시작 또는 설정 재로드
source ~/.zshrc
# 5. 설치 확인
gt doctor# 홈 디렉토리에 클론
git clone <repository-url> ~/sh-kit
# 개발 도구 디렉토리에 클론
git clone <repository-url> ~/dev/sh-kit
# 프로젝트 디렉토리에 클론
git clone <repository-url> ~/projects/sh-kit# 사용 가능한 도구 확인
gt help
# 명령어 실행
gt bb # 브랜치 도구
gt c-s # 커밋 선택
gt doctor # 의존성 체크# .gitconfig에 추가
[alias]
bb = "!gt branch-tools"
pfc = "!gt force-push-chain"
c-s = "!gt commit-select"
al = "!gt alias-select"- fzf: 인터랙티브 선택을 위한 fuzzy finder
- bat: 파일 미리보기 (사용 불가 시 cat으로 대체)
- pygmentize: 코드 구문 강조
확인: gt doctor
SH_KIT_HOME: 스크립트 홈 디렉토리 (클론한 경로에 맞게 설정)
.gitconfig의 alias들:
[alias]
bb = "!gt branch-tools"
pfc = "!gt force-push-chain"
c-s = "!gt commit-select"
al = "!gt alias-select"- 단일 파일 관리: 모든 Git 도구가 하나의 파일에 통합
- 다양한 사용 패턴: 직접 실행과 Git alias 모두 지원
- 깔끔한 구조: 복잡한 래퍼 없이 간단한 구조
- 표준 접근법: Unix/Linux 표준 bin 디렉토리 패턴
- 확장성: 새로운 도구 추가가 용이한 구조
bin/gt는 git/git-tools.sh로의 심볼릭 링크입니다:
- 실제 파일:
git/git-tools.sh(모든 기능이 구현됨) - 심볼릭 링크:
bin/gt(PATH에서 접근 가능) - 장점: 단일 파일 관리, PATH 기반 실행, 확장성
심볼릭 링크의 특성상 git-tools.sh 파일 수정 사항이 즉시 반영됩니다:
# git-tools.sh 수정 후
gt help # 즉시 반영됨 (재시작 불필요)
git bb # Git alias도 즉시 반영됨
# 확인 방법
gt doctor # 의존성 및 설정 확인주의사항:
- 새로운 함수 추가 시: 스크립트만 수정하면 됨
- 새로운 명령어 추가 시: 명령어 분기(case 문) 업데이트 필요
- 파일 이동/삭제 시: 심볼릭 링크가 깨질 수 있으므로 주의