AgentSkillsCN

speckit-git-initialize

初始化Git仓库并进行首次提交

SKILL.md
--- frontmatter
name: speckit-git-initialize
description: Initialize a Git repository with an initial commit
compatibility: Requires spec-kit project structure with .specify/ directory
metadata:
  author: github-spec-kit
  source: git:commands/speckit.git.initialize.md
user-invocable: true
disable-model-invocation: true

Initialize Git Repository

Initialize a Git repository in the current project directory if one does not already exist.

Execution

Run the appropriate script from the project root:

  • Bash: .specify/extensions/git/scripts/bash/initialize-repo.sh
  • PowerShell: .specify/extensions/git/scripts/powershell/initialize-repo.ps1

If the extension scripts are not found, fall back to:

  • Bash: git init && git add . && git commit -m "Initial commit from Specify template"
  • PowerShell: git init; git add .; git commit -m "Initial commit from Specify template"

The script handles all checks internally:

  • Skips if Git is not available
  • Skips if already inside a Git repository
  • Runs git init, git add ., and git commit with an initial commit message

Customization

Replace the script to add project-specific Git initialization steps:

  • Custom .gitignore templates
  • Default branch naming (git config init.defaultBranch)
  • Git LFS setup
  • Git hooks installation
  • Commit signing configuration
  • Git Flow initialization

Output

On success:

  • ✓ Git repository initialized

Graceful Degradation

If Git is not installed:

  • Warn the user
  • Skip repository initialization
  • The project continues to function without Git (specs can still be created under specs/)

If Git is installed but git init, git add ., or git commit fails:

  • Surface the error to the user
  • Stop this command rather than continuing with a partially initialized repository