APM

>Agent Skill

@shren207/configuring-git

skillgit-workflow

Git configuration via Home Manager: delta diff viewer, lazygit TUI integration, rerere conflict resolution, aliases (s, l), git-cleanup branch pruning, and interactive rebase reverse display. Covers delta feature/pager settings and side-by-side control. NOT for Claude Code hooks/plugins (use configuring-claude-code) or Codex CLI/.agents config (use configuring-codex). Triggers: "gitconfig conflicts", "git-cleanup", "git cleanup", "rebase reverse display", "lazygit delta pager config", "git 설정 충돌", "delta 설정", "Git alias", "side-by-side", "rerere", "git 브랜치 정리", "delta pager".

git
apm::install
$apm install @shren207/configuring-git
apm::skill.md
---
name: configuring-git
description: |
  Git configuration via Home Manager: delta diff viewer, lazygit TUI integration,
  rerere conflict resolution, aliases (s, l),
  git-cleanup branch pruning, and interactive rebase reverse display.
  Covers delta feature/pager settings and side-by-side control.
  NOT for Claude Code hooks/plugins (use configuring-claude-code)
  or Codex CLI/.agents config (use configuring-codex).
  Triggers: "gitconfig conflicts", "git-cleanup", "git cleanup",
  "rebase reverse display", "lazygit delta pager config",
  "git 설정 충돌", "delta 설정", "Git alias",
  "side-by-side", "rerere",
  "git 브랜치 정리", "delta pager".
---

# Git 설정

Git, delta diff, lazygit, rerere 등 Git 관련 설정을 다룬다.

## 목적과 범위

Home Manager 기반 Git 설정과 lazygit/delta 통합, 충돌 복구 절차를 다룬다.

## 빠른 참조

### 주요 기능

| 기능 | 설명 |
|------|------|
| delta | Git diff를 구문 강조로 표시 |
| lazygit (`lg`) | Git TUI (delta pager 통합) |
| rerere | 충돌 해결 패턴 기록/재사용 |
| git aliases (`s`, `l`) | 짧은 상태/로그 조회 단축 |
| 기본 정책 | `push.autoSetupRemote=true`, `merge.conflictStyle=zdiff3` |
| rebase 역순 | Interactive rebase에서 최신 커밋이 위로 |
| git-cleanup | 오래된/삭제된 브랜치 정리 |

### delta 설정 확인

```bash
# delta가 설치되어 있는지 확인
which delta

# Git에서 delta 사용 중인지 확인
git config --get core.pager

# 핵심 git 설정 확인
git config --get alias.s
git config --get alias.l
git config --get push.autoSetupRemote
git config --get merge.conflictStyle
```

### rerere 사용법

```bash
# rerere 상태 확인
git rerere status

# 기록된 해결책 확인
git rerere diff

# 캐시 정리
rm -rf .git/rr-cache
```

### 설정 파일 위치

| 파일 | 용도 |
|------|------|
| `modules/shared/programs/git/default.nix` | Git + delta 설정 |
| `modules/shared/programs/shell/default.nix` | 동적 side-by-side 제어 (.zshenv + precmd) |
| `modules/shared/programs/lazygit/default.nix` | lazygit 설정 (delta pager 통합) |
| `$HOME/.gitconfig` | 생성된 Git/delta 설정 (Nix 관리) |
| `~/Library/Application Support/lazygit/config.yml` | 생성된 lazygit 설정 (Nix 관리, macOS) |

## 핵심 절차

1. Git 핵심 옵션(`core.pager`, `alias`, `rerere`)을 `git config --get`로 확인한다.
2. lazygit/delta 연동이 깨진 경우 `modules/shared/programs/lazygit/default.nix`를 점검한다.
3. 충돌 재현 시 rerere cache를 확인하고 필요하면 정리한다.
4. 변경 후 `git diff`, `lazygit`, rebase 흐름을 순서대로 검증한다.

## 자주 발생하는 문제

1. **delta 적용 안 됨**: `core.pager` 설정 확인, PATH에 delta 있는지 확인
2. **gitconfig 충돌**: 기존 `$HOME/.gitconfig`가 있으면 Home Manager와 충돌
3. **rebase 역순 안 됨**: `GIT_SEQUENCE_EDITOR` 환경변수 확인
4. **lazygit에서 delta side-by-side가 꺼지지 않음**: [트러블슈팅 참조](references/troubleshooting.md#lazygit에서-delta-side-by-side-오버라이드가-안-됨)

## 레퍼런스

- delta/lazygit/rebase 설정 상세: [references/config.md](references/config.md)
- git-cleanup 사용법: [references/commands.md](references/commands.md)
- 트러블슈팅: [references/troubleshooting.md](references/troubleshooting.md)