universal-dev-standards 3.5.1-beta.1 → 3.5.1-beta.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/uds.js +2 -0
- package/bundled/core/ai-instruction-standards.md +205 -0
- package/bundled/core/anti-hallucination.md +684 -0
- package/bundled/core/changelog-standards.md +556 -0
- package/bundled/core/checkin-standards.md +935 -0
- package/bundled/core/code-review-checklist.md +684 -0
- package/bundled/core/commit-message-guide.md +915 -0
- package/bundled/core/documentation-structure.md +1117 -0
- package/bundled/core/documentation-writing-standards.md +487 -0
- package/bundled/core/error-code-standards.md +382 -0
- package/bundled/core/git-workflow.md +859 -0
- package/bundled/core/logging-standards.md +323 -0
- package/bundled/core/project-structure.md +354 -0
- package/bundled/core/refactoring-standards.md +636 -0
- package/bundled/core/spec-driven-development.md +207 -0
- package/bundled/core/test-completeness-dimensions.md +536 -0
- package/bundled/core/test-driven-development.md +995 -0
- package/bundled/core/testing-standards.md +3061 -0
- package/bundled/core/versioning.md +902 -0
- package/bundled/locales/README.md +88 -0
- package/bundled/locales/zh-CN/CHANGELOG.md +705 -0
- package/bundled/locales/zh-CN/CLAUDE.md +213 -0
- package/bundled/locales/zh-CN/MAINTENANCE.md +689 -0
- package/bundled/locales/zh-CN/README.md +707 -0
- package/bundled/locales/zh-CN/STANDARDS-MAPPING.md +177 -0
- package/bundled/locales/zh-CN/adoption/ADOPTION-GUIDE.md +392 -0
- package/bundled/locales/zh-CN/adoption/STATIC-DYNAMIC-GUIDE.md +302 -0
- package/bundled/locales/zh-CN/adoption/checklists/enterprise.md +332 -0
- package/bundled/locales/zh-CN/adoption/checklists/minimal.md +141 -0
- package/bundled/locales/zh-CN/adoption/checklists/recommended.md +272 -0
- package/bundled/locales/zh-CN/ai/MAINTENANCE.md +739 -0
- package/bundled/locales/zh-CN/ai/options/changelog/auto-generated.ai.yaml +76 -0
- package/bundled/locales/zh-CN/ai/options/changelog/keep-a-changelog.ai.yaml +99 -0
- package/bundled/locales/zh-CN/ai/options/code-review/automated-review.ai.yaml +120 -0
- package/bundled/locales/zh-CN/ai/options/code-review/pair-programming.ai.yaml +109 -0
- package/bundled/locales/zh-CN/ai/options/code-review/pr-review.ai.yaml +104 -0
- package/bundled/locales/zh-CN/ai/options/commit-message/bilingual.ai.yaml +105 -0
- package/bundled/locales/zh-CN/ai/options/commit-message/english.ai.yaml +79 -0
- package/bundled/locales/zh-CN/ai/options/commit-message/traditional-chinese.ai.yaml +100 -0
- package/bundled/locales/zh-CN/ai/options/documentation/api-docs.ai.yaml +140 -0
- package/bundled/locales/zh-CN/ai/options/documentation/markdown-docs.ai.yaml +89 -0
- package/bundled/locales/zh-CN/ai/options/documentation/wiki-style.ai.yaml +119 -0
- package/bundled/locales/zh-CN/ai/options/git-workflow/gitflow.ai.yaml +133 -0
- package/bundled/locales/zh-CN/ai/options/git-workflow/github-flow.ai.yaml +73 -0
- package/bundled/locales/zh-CN/ai/options/git-workflow/merge-commit.ai.yaml +88 -0
- package/bundled/locales/zh-CN/ai/options/git-workflow/rebase-ff.ai.yaml +113 -0
- package/bundled/locales/zh-CN/ai/options/git-workflow/squash-merge.ai.yaml +85 -0
- package/bundled/locales/zh-CN/ai/options/git-workflow/trunk-based.ai.yaml +117 -0
- package/bundled/locales/zh-CN/ai/options/project-structure/dotnet.ai.yaml +108 -0
- package/bundled/locales/zh-CN/ai/options/project-structure/go.ai.yaml +115 -0
- package/bundled/locales/zh-CN/ai/options/project-structure/java.ai.yaml +113 -0
- package/bundled/locales/zh-CN/ai/options/project-structure/kotlin.ai.yaml +123 -0
- package/bundled/locales/zh-CN/ai/options/project-structure/nodejs.ai.yaml +101 -0
- package/bundled/locales/zh-CN/ai/options/project-structure/php.ai.yaml +147 -0
- package/bundled/locales/zh-CN/ai/options/project-structure/python.ai.yaml +116 -0
- package/bundled/locales/zh-CN/ai/options/project-structure/ruby.ai.yaml +140 -0
- package/bundled/locales/zh-CN/ai/options/project-structure/rust.ai.yaml +117 -0
- package/bundled/locales/zh-CN/ai/options/project-structure/swift.ai.yaml +143 -0
- package/bundled/locales/zh-CN/ai/options/testing/contract-testing.ai.yaml +254 -0
- package/bundled/locales/zh-CN/ai/options/testing/e2e-testing.ai.yaml +116 -0
- package/bundled/locales/zh-CN/ai/options/testing/industry-pyramid.ai.yaml +144 -0
- package/bundled/locales/zh-CN/ai/options/testing/integration-testing.ai.yaml +90 -0
- package/bundled/locales/zh-CN/ai/options/testing/istqb-framework.ai.yaml +108 -0
- package/bundled/locales/zh-CN/ai/options/testing/performance-testing.ai.yaml +272 -0
- package/bundled/locales/zh-CN/ai/options/testing/security-testing.ai.yaml +160 -0
- package/bundled/locales/zh-CN/ai/options/testing/system-testing.ai.yaml +101 -0
- package/bundled/locales/zh-CN/ai/options/testing/unit-testing.ai.yaml +82 -0
- package/bundled/locales/zh-CN/ai/standards/anti-hallucination.ai.yaml +145 -0
- package/bundled/locales/zh-CN/ai/standards/changelog.ai.yaml +146 -0
- package/bundled/locales/zh-CN/ai/standards/checkin-standards.ai.yaml +170 -0
- package/bundled/locales/zh-CN/ai/standards/code-review.ai.yaml +148 -0
- package/bundled/locales/zh-CN/ai/standards/commit-message.ai.yaml +175 -0
- package/bundled/locales/zh-CN/ai/standards/documentation-structure.ai.yaml +124 -0
- package/bundled/locales/zh-CN/ai/standards/documentation-writing-standards.ai.yaml +190 -0
- package/bundled/locales/zh-CN/ai/standards/error-codes.ai.yaml +139 -0
- package/bundled/locales/zh-CN/ai/standards/git-workflow.ai.yaml +95 -0
- package/bundled/locales/zh-CN/ai/standards/logging.ai.yaml +128 -0
- package/bundled/locales/zh-CN/ai/standards/project-structure.ai.yaml +134 -0
- package/bundled/locales/zh-CN/ai/standards/spec-driven-development.ai.yaml +169 -0
- package/bundled/locales/zh-CN/ai/standards/test-completeness-dimensions.ai.yaml +220 -0
- package/bundled/locales/zh-CN/ai/standards/testing.ai.yaml +137 -0
- package/bundled/locales/zh-CN/ai/standards/versioning.ai.yaml +211 -0
- package/bundled/locales/zh-CN/core/ai-instruction-standards.md +213 -0
- package/bundled/locales/zh-CN/core/anti-hallucination.md +691 -0
- package/bundled/locales/zh-CN/core/changelog-standards.md +147 -0
- package/bundled/locales/zh-CN/core/checkin-standards.md +943 -0
- package/bundled/locales/zh-CN/core/code-review-guide.md +693 -0
- package/bundled/locales/zh-CN/core/commit-message-guide.md +129 -0
- package/bundled/locales/zh-CN/core/documentation-structure.md +173 -0
- package/bundled/locales/zh-CN/core/documentation-writing-standards.md +495 -0
- package/bundled/locales/zh-CN/core/error-code-standards.md +180 -0
- package/bundled/locales/zh-CN/core/git-workflow.md +193 -0
- package/bundled/locales/zh-CN/core/logging-standards.md +174 -0
- package/bundled/locales/zh-CN/core/project-structure.md +184 -0
- package/bundled/locales/zh-CN/core/refactoring-standards.md +642 -0
- package/bundled/locales/zh-CN/core/spec-driven-development.md +215 -0
- package/bundled/locales/zh-CN/core/test-completeness-dimensions.md +544 -0
- package/bundled/locales/zh-CN/core/test-driven-development.md +1002 -0
- package/bundled/locales/zh-CN/core/testing-standards.md +170 -0
- package/bundled/locales/zh-CN/core/versioning.md +177 -0
- package/bundled/locales/zh-CN/docs/AI-AGENT-ROADMAP.md +303 -0
- package/bundled/locales/zh-CN/docs/CLI-INIT-OPTIONS.md +990 -0
- package/bundled/locales/zh-CN/docs/OPERATION-WORKFLOW.md +1064 -0
- package/bundled/locales/zh-CN/docs/USAGE-MODES-COMPARISON.md +333 -0
- package/bundled/locales/zh-CN/docs/WINDOWS-GUIDE.md +215 -0
- package/bundled/locales/zh-CN/integrations/codex/AGENTS.md +115 -0
- package/bundled/locales/zh-CN/integrations/codex/README.md +67 -0
- package/bundled/locales/zh-CN/integrations/gemini-cli/GEMINI.md +102 -0
- package/bundled/locales/zh-CN/integrations/gemini-cli/README.md +140 -0
- package/bundled/locales/zh-CN/integrations/github-copilot/COPILOT-CHAT-REFERENCE.md +269 -0
- package/bundled/locales/zh-CN/integrations/github-copilot/README.md +167 -0
- package/bundled/locales/zh-CN/integrations/github-copilot/copilot-instructions.md +263 -0
- package/bundled/locales/zh-CN/integrations/github-copilot/skills-mapping.md +192 -0
- package/bundled/locales/zh-CN/integrations/google-antigravity/INSTRUCTIONS.md +61 -0
- package/bundled/locales/zh-CN/integrations/google-antigravity/README.md +84 -0
- package/bundled/locales/zh-CN/integrations/opencode/AGENTS.md +111 -0
- package/bundled/locales/zh-CN/integrations/opencode/README.md +176 -0
- package/bundled/locales/zh-CN/integrations/opencode/skills-mapping.md +396 -0
- package/bundled/locales/zh-CN/integrations/openspec/AGENTS.md +301 -0
- package/bundled/locales/zh-CN/integrations/openspec/README.md +43 -0
- package/bundled/locales/zh-CN/integrations/spec-kit/AGENTS.md +184 -0
- package/bundled/locales/zh-CN/integrations/spec-kit/README.md +43 -0
- package/bundled/locales/zh-CN/options/commit-message/bilingual.md +161 -0
- package/bundled/locales/zh-CN/options/commit-message/english.md +137 -0
- package/bundled/locales/zh-CN/options/commit-message/traditional-chinese.md +162 -0
- package/bundled/locales/zh-CN/options/git-workflow/gitflow.md +147 -0
- package/bundled/locales/zh-CN/options/git-workflow/github-flow.md +124 -0
- package/bundled/locales/zh-CN/options/git-workflow/merge-commit.md +124 -0
- package/bundled/locales/zh-CN/options/git-workflow/rebase-ff.md +160 -0
- package/bundled/locales/zh-CN/options/git-workflow/squash-merge.md +117 -0
- package/bundled/locales/zh-CN/options/git-workflow/trunk-based.md +125 -0
- package/bundled/locales/zh-CN/options/project-structure/dotnet.md +183 -0
- package/bundled/locales/zh-CN/options/project-structure/go.md +226 -0
- package/bundled/locales/zh-CN/options/project-structure/java.md +213 -0
- package/bundled/locales/zh-CN/options/project-structure/nodejs.md +185 -0
- package/bundled/locales/zh-CN/options/project-structure/python.md +229 -0
- package/bundled/locales/zh-CN/options/testing/e2e-testing.md +207 -0
- package/bundled/locales/zh-CN/options/testing/integration-testing.md +230 -0
- package/bundled/locales/zh-CN/options/testing/system-testing.md +183 -0
- package/bundled/locales/zh-CN/options/testing/unit-testing.md +165 -0
- package/bundled/locales/zh-CN/skills/INTEGRATION-GUIDE.md +218 -0
- package/bundled/locales/zh-CN/skills/README.md +134 -0
- package/bundled/locales/zh-CN/skills/_shared/README.md +68 -0
- package/bundled/locales/zh-CN/skills/claude-code/CONTRIBUTING.template.md +151 -0
- package/bundled/locales/zh-CN/skills/claude-code/README.md +174 -0
- package/bundled/locales/zh-CN/skills/claude-code/ai-collaboration-standards/SKILL.md +175 -0
- package/bundled/locales/zh-CN/skills/claude-code/ai-collaboration-standards/anti-hallucination.md +223 -0
- package/bundled/locales/zh-CN/skills/claude-code/ai-collaboration-standards/certainty-labels.md +132 -0
- package/bundled/locales/zh-CN/skills/claude-code/changelog-guide/SKILL.md +237 -0
- package/bundled/locales/zh-CN/skills/claude-code/checkin-assistant/SKILL.md +407 -0
- package/bundled/locales/zh-CN/skills/claude-code/code-review-assistant/SKILL.md +154 -0
- package/bundled/locales/zh-CN/skills/claude-code/code-review-assistant/checkin-checklist.md +257 -0
- package/bundled/locales/zh-CN/skills/claude-code/code-review-assistant/review-checklist.md +246 -0
- package/bundled/locales/zh-CN/skills/claude-code/commands/bdd.md +142 -0
- package/bundled/locales/zh-CN/skills/claude-code/commands/methodology.md +274 -0
- package/bundled/locales/zh-CN/skills/claude-code/commit-standards/SKILL.md +191 -0
- package/bundled/locales/zh-CN/skills/claude-code/commit-standards/conventional-commits.md +264 -0
- package/bundled/locales/zh-CN/skills/claude-code/commit-standards/language-options.md +172 -0
- package/bundled/locales/zh-CN/skills/claude-code/documentation-guide/SKILL.md +421 -0
- package/bundled/locales/zh-CN/skills/claude-code/documentation-guide/documentation-structure.md +357 -0
- package/bundled/locales/zh-CN/skills/claude-code/documentation-guide/readme-template.md +412 -0
- package/bundled/locales/zh-CN/skills/claude-code/error-code-guide/SKILL.md +269 -0
- package/bundled/locales/zh-CN/skills/claude-code/git-workflow-guide/SKILL.md +218 -0
- package/bundled/locales/zh-CN/skills/claude-code/git-workflow-guide/branch-naming.md +220 -0
- package/bundled/locales/zh-CN/skills/claude-code/git-workflow-guide/git-workflow.md +321 -0
- package/bundled/locales/zh-CN/skills/claude-code/logging-guide/SKILL.md +285 -0
- package/bundled/locales/zh-CN/skills/claude-code/methodology-system/SKILL.md +131 -0
- package/bundled/locales/zh-CN/skills/claude-code/methodology-system/create-methodology.md +350 -0
- package/bundled/locales/zh-CN/skills/claude-code/methodology-system/runtime.md +279 -0
- package/bundled/locales/zh-CN/skills/claude-code/project-structure-guide/SKILL.md +143 -0
- package/bundled/locales/zh-CN/skills/claude-code/project-structure-guide/language-patterns.md +271 -0
- package/bundled/locales/zh-CN/skills/claude-code/refactoring-assistant/SKILL.md +162 -0
- package/bundled/locales/zh-CN/skills/claude-code/release-standards/SKILL.md +191 -0
- package/bundled/locales/zh-CN/skills/claude-code/release-standards/changelog-format.md +247 -0
- package/bundled/locales/zh-CN/skills/claude-code/release-standards/release-workflow.md +345 -0
- package/bundled/locales/zh-CN/skills/claude-code/release-standards/semantic-versioning.md +250 -0
- package/bundled/locales/zh-CN/skills/claude-code/requirement-assistant/SKILL.md +227 -0
- package/bundled/locales/zh-CN/skills/claude-code/requirement-assistant/requirement-checklist.md +325 -0
- package/bundled/locales/zh-CN/skills/claude-code/requirement-assistant/requirement-writing.md +399 -0
- package/bundled/locales/zh-CN/skills/claude-code/spec-driven-dev/SKILL.md +243 -0
- package/bundled/locales/zh-CN/skills/claude-code/tdd-assistant/SKILL.md +332 -0
- package/bundled/locales/zh-CN/skills/claude-code/tdd-assistant/language-examples.md +639 -0
- package/bundled/locales/zh-CN/skills/claude-code/tdd-assistant/tdd-workflow.md +486 -0
- package/bundled/locales/zh-CN/skills/claude-code/test-coverage-assistant/SKILL.md +282 -0
- package/bundled/locales/zh-CN/skills/claude-code/testing-guide/SKILL.md +234 -0
- package/bundled/locales/zh-CN/skills/claude-code/testing-guide/testing-pyramid.md +448 -0
- package/bundled/locales/zh-CN/skills/cline/README.md +58 -0
- package/bundled/locales/zh-CN/skills/copilot/README.md +61 -0
- package/bundled/locales/zh-CN/skills/copilot/copilot-instructions.md +79 -0
- package/bundled/locales/zh-CN/skills/cursor/README.md +58 -0
- package/bundled/locales/zh-CN/skills/windsurf/README.md +59 -0
- package/bundled/locales/zh-TW/CHANGELOG.md +707 -0
- package/bundled/locales/zh-TW/CLAUDE.md +213 -0
- package/bundled/locales/zh-TW/MAINTENANCE.md +683 -0
- package/bundled/locales/zh-TW/README.md +687 -0
- package/bundled/locales/zh-TW/STANDARDS-MAPPING.md +177 -0
- package/bundled/locales/zh-TW/adoption/ADOPTION-GUIDE.md +392 -0
- package/bundled/locales/zh-TW/adoption/STATIC-DYNAMIC-GUIDE.md +299 -0
- package/bundled/locales/zh-TW/adoption/checklists/enterprise.md +332 -0
- package/bundled/locales/zh-TW/adoption/checklists/minimal.md +141 -0
- package/bundled/locales/zh-TW/adoption/checklists/recommended.md +272 -0
- package/bundled/locales/zh-TW/ai/MAINTENANCE.md +754 -0
- package/bundled/locales/zh-TW/ai/options/changelog/auto-generated.ai.yaml +76 -0
- package/bundled/locales/zh-TW/ai/options/changelog/keep-a-changelog.ai.yaml +99 -0
- package/bundled/locales/zh-TW/ai/options/code-review/automated-review.ai.yaml +120 -0
- package/bundled/locales/zh-TW/ai/options/code-review/pair-programming.ai.yaml +109 -0
- package/bundled/locales/zh-TW/ai/options/code-review/pr-review.ai.yaml +104 -0
- package/bundled/locales/zh-TW/ai/options/commit-message/bilingual.ai.yaml +105 -0
- package/bundled/locales/zh-TW/ai/options/commit-message/english.ai.yaml +79 -0
- package/bundled/locales/zh-TW/ai/options/commit-message/traditional-chinese.ai.yaml +100 -0
- package/bundled/locales/zh-TW/ai/options/documentation/api-docs.ai.yaml +140 -0
- package/bundled/locales/zh-TW/ai/options/documentation/markdown-docs.ai.yaml +89 -0
- package/bundled/locales/zh-TW/ai/options/documentation/wiki-style.ai.yaml +119 -0
- package/bundled/locales/zh-TW/ai/options/git-workflow/gitflow.ai.yaml +133 -0
- package/bundled/locales/zh-TW/ai/options/git-workflow/github-flow.ai.yaml +73 -0
- package/bundled/locales/zh-TW/ai/options/git-workflow/merge-commit.ai.yaml +88 -0
- package/bundled/locales/zh-TW/ai/options/git-workflow/rebase-ff.ai.yaml +113 -0
- package/bundled/locales/zh-TW/ai/options/git-workflow/squash-merge.ai.yaml +85 -0
- package/bundled/locales/zh-TW/ai/options/git-workflow/trunk-based.ai.yaml +117 -0
- package/bundled/locales/zh-TW/ai/options/project-structure/dotnet.ai.yaml +108 -0
- package/bundled/locales/zh-TW/ai/options/project-structure/go.ai.yaml +115 -0
- package/bundled/locales/zh-TW/ai/options/project-structure/java.ai.yaml +113 -0
- package/bundled/locales/zh-TW/ai/options/project-structure/kotlin.ai.yaml +123 -0
- package/bundled/locales/zh-TW/ai/options/project-structure/nodejs.ai.yaml +101 -0
- package/bundled/locales/zh-TW/ai/options/project-structure/php.ai.yaml +147 -0
- package/bundled/locales/zh-TW/ai/options/project-structure/python.ai.yaml +116 -0
- package/bundled/locales/zh-TW/ai/options/project-structure/ruby.ai.yaml +140 -0
- package/bundled/locales/zh-TW/ai/options/project-structure/rust.ai.yaml +117 -0
- package/bundled/locales/zh-TW/ai/options/project-structure/swift.ai.yaml +143 -0
- package/bundled/locales/zh-TW/ai/options/testing/contract-testing.ai.yaml +254 -0
- package/bundled/locales/zh-TW/ai/options/testing/e2e-testing.ai.yaml +116 -0
- package/bundled/locales/zh-TW/ai/options/testing/industry-pyramid.ai.yaml +144 -0
- package/bundled/locales/zh-TW/ai/options/testing/integration-testing.ai.yaml +90 -0
- package/bundled/locales/zh-TW/ai/options/testing/istqb-framework.ai.yaml +108 -0
- package/bundled/locales/zh-TW/ai/options/testing/performance-testing.ai.yaml +272 -0
- package/bundled/locales/zh-TW/ai/options/testing/security-testing.ai.yaml +160 -0
- package/bundled/locales/zh-TW/ai/options/testing/system-testing.ai.yaml +101 -0
- package/bundled/locales/zh-TW/ai/options/testing/unit-testing.ai.yaml +82 -0
- package/bundled/locales/zh-TW/ai/standards/anti-hallucination.ai.yaml +145 -0
- package/bundled/locales/zh-TW/ai/standards/changelog.ai.yaml +146 -0
- package/bundled/locales/zh-TW/ai/standards/checkin-standards.ai.yaml +170 -0
- package/bundled/locales/zh-TW/ai/standards/code-review.ai.yaml +148 -0
- package/bundled/locales/zh-TW/ai/standards/commit-message.ai.yaml +175 -0
- package/bundled/locales/zh-TW/ai/standards/documentation-structure.ai.yaml +124 -0
- package/bundled/locales/zh-TW/ai/standards/documentation-writing-standards.ai.yaml +190 -0
- package/bundled/locales/zh-TW/ai/standards/error-codes.ai.yaml +139 -0
- package/bundled/locales/zh-TW/ai/standards/git-workflow.ai.yaml +95 -0
- package/bundled/locales/zh-TW/ai/standards/logging.ai.yaml +128 -0
- package/bundled/locales/zh-TW/ai/standards/project-structure.ai.yaml +134 -0
- package/bundled/locales/zh-TW/ai/standards/spec-driven-development.ai.yaml +169 -0
- package/bundled/locales/zh-TW/ai/standards/test-completeness-dimensions.ai.yaml +220 -0
- package/bundled/locales/zh-TW/ai/standards/testing.ai.yaml +137 -0
- package/bundled/locales/zh-TW/ai/standards/versioning.ai.yaml +211 -0
- package/bundled/locales/zh-TW/core/ai-instruction-standards.md +213 -0
- package/bundled/locales/zh-TW/core/anti-hallucination.md +691 -0
- package/bundled/locales/zh-TW/core/changelog-standards.md +564 -0
- package/bundled/locales/zh-TW/core/checkin-standards.md +943 -0
- package/bundled/locales/zh-TW/core/code-review-checklist.md +693 -0
- package/bundled/locales/zh-TW/core/commit-message-guide.md +809 -0
- package/bundled/locales/zh-TW/core/documentation-structure.md +1125 -0
- package/bundled/locales/zh-TW/core/documentation-writing-standards.md +495 -0
- package/bundled/locales/zh-TW/core/error-code-standards.md +384 -0
- package/bundled/locales/zh-TW/core/git-workflow.md +860 -0
- package/bundled/locales/zh-TW/core/logging-standards.md +325 -0
- package/bundled/locales/zh-TW/core/project-structure.md +362 -0
- package/bundled/locales/zh-TW/core/refactoring-standards.md +642 -0
- package/bundled/locales/zh-TW/core/spec-driven-development.md +215 -0
- package/bundled/locales/zh-TW/core/test-completeness-dimensions.md +544 -0
- package/bundled/locales/zh-TW/core/test-driven-development.md +1004 -0
- package/bundled/locales/zh-TW/core/testing-standards.md +2158 -0
- package/bundled/locales/zh-TW/core/versioning.md +909 -0
- package/bundled/locales/zh-TW/docs/AI-AGENT-ROADMAP.md +303 -0
- package/bundled/locales/zh-TW/docs/CLI-INIT-OPTIONS.md +990 -0
- package/bundled/locales/zh-TW/docs/OPERATION-WORKFLOW.md +1064 -0
- package/bundled/locales/zh-TW/docs/USAGE-MODES-COMPARISON.md +333 -0
- package/bundled/locales/zh-TW/docs/WINDOWS-GUIDE.md +215 -0
- package/bundled/locales/zh-TW/integrations/codex/AGENTS.md +115 -0
- package/bundled/locales/zh-TW/integrations/codex/README.md +113 -0
- package/bundled/locales/zh-TW/integrations/gemini-cli/GEMINI.md +102 -0
- package/bundled/locales/zh-TW/integrations/gemini-cli/README.md +140 -0
- package/bundled/locales/zh-TW/integrations/github-copilot/COPILOT-CHAT-REFERENCE.md +269 -0
- package/bundled/locales/zh-TW/integrations/github-copilot/README.md +167 -0
- package/bundled/locales/zh-TW/integrations/github-copilot/copilot-instructions.md +263 -0
- package/bundled/locales/zh-TW/integrations/github-copilot/skills-mapping.md +192 -0
- package/bundled/locales/zh-TW/integrations/google-antigravity/INSTRUCTIONS.md +61 -0
- package/bundled/locales/zh-TW/integrations/google-antigravity/README.md +84 -0
- package/bundled/locales/zh-TW/integrations/opencode/AGENTS.md +111 -0
- package/bundled/locales/zh-TW/integrations/opencode/README.md +176 -0
- package/bundled/locales/zh-TW/integrations/opencode/skills-mapping.md +396 -0
- package/bundled/locales/zh-TW/integrations/openspec/AGENTS.md +301 -0
- package/bundled/locales/zh-TW/integrations/openspec/README.md +43 -0
- package/bundled/locales/zh-TW/integrations/spec-kit/AGENTS.md +184 -0
- package/bundled/locales/zh-TW/integrations/spec-kit/README.md +43 -0
- package/bundled/locales/zh-TW/options/commit-message/bilingual.md +161 -0
- package/bundled/locales/zh-TW/options/commit-message/english.md +137 -0
- package/bundled/locales/zh-TW/options/commit-message/traditional-chinese.md +162 -0
- package/bundled/locales/zh-TW/options/git-workflow/gitflow.md +147 -0
- package/bundled/locales/zh-TW/options/git-workflow/github-flow.md +124 -0
- package/bundled/locales/zh-TW/options/git-workflow/merge-commit.md +124 -0
- package/bundled/locales/zh-TW/options/git-workflow/rebase-ff.md +160 -0
- package/bundled/locales/zh-TW/options/git-workflow/squash-merge.md +117 -0
- package/bundled/locales/zh-TW/options/git-workflow/trunk-based.md +125 -0
- package/bundled/locales/zh-TW/options/project-structure/dotnet.md +183 -0
- package/bundled/locales/zh-TW/options/project-structure/go.md +226 -0
- package/bundled/locales/zh-TW/options/project-structure/java.md +213 -0
- package/bundled/locales/zh-TW/options/project-structure/nodejs.md +185 -0
- package/bundled/locales/zh-TW/options/project-structure/python.md +229 -0
- package/bundled/locales/zh-TW/options/testing/e2e-testing.md +207 -0
- package/bundled/locales/zh-TW/options/testing/integration-testing.md +230 -0
- package/bundled/locales/zh-TW/options/testing/system-testing.md +183 -0
- package/bundled/locales/zh-TW/options/testing/unit-testing.md +165 -0
- package/bundled/locales/zh-TW/skills/INTEGRATION-GUIDE.md +218 -0
- package/bundled/locales/zh-TW/skills/README.md +132 -0
- package/bundled/locales/zh-TW/skills/_shared/README.md +68 -0
- package/bundled/locales/zh-TW/skills/claude-code/CONTRIBUTING.template.md +151 -0
- package/bundled/locales/zh-TW/skills/claude-code/README.md +174 -0
- package/bundled/locales/zh-TW/skills/claude-code/ai-collaboration-standards/SKILL.md +175 -0
- package/bundled/locales/zh-TW/skills/claude-code/ai-collaboration-standards/anti-hallucination.md +223 -0
- package/bundled/locales/zh-TW/skills/claude-code/ai-collaboration-standards/certainty-labels.md +132 -0
- package/bundled/locales/zh-TW/skills/claude-code/changelog-guide/SKILL.md +237 -0
- package/bundled/locales/zh-TW/skills/claude-code/checkin-assistant/SKILL.md +407 -0
- package/bundled/locales/zh-TW/skills/claude-code/code-review-assistant/SKILL.md +154 -0
- package/bundled/locales/zh-TW/skills/claude-code/code-review-assistant/checkin-checklist.md +257 -0
- package/bundled/locales/zh-TW/skills/claude-code/code-review-assistant/review-checklist.md +246 -0
- package/bundled/locales/zh-TW/skills/claude-code/commands/bdd.md +142 -0
- package/bundled/locales/zh-TW/skills/claude-code/commands/methodology.md +274 -0
- package/bundled/locales/zh-TW/skills/claude-code/commit-standards/SKILL.md +191 -0
- package/bundled/locales/zh-TW/skills/claude-code/commit-standards/conventional-commits.md +264 -0
- package/bundled/locales/zh-TW/skills/claude-code/commit-standards/language-options.md +172 -0
- package/bundled/locales/zh-TW/skills/claude-code/documentation-guide/SKILL.md +421 -0
- package/bundled/locales/zh-TW/skills/claude-code/documentation-guide/documentation-structure.md +357 -0
- package/bundled/locales/zh-TW/skills/claude-code/documentation-guide/readme-template.md +412 -0
- package/bundled/locales/zh-TW/skills/claude-code/error-code-guide/SKILL.md +269 -0
- package/bundled/locales/zh-TW/skills/claude-code/git-workflow-guide/SKILL.md +218 -0
- package/bundled/locales/zh-TW/skills/claude-code/git-workflow-guide/branch-naming.md +220 -0
- package/bundled/locales/zh-TW/skills/claude-code/git-workflow-guide/git-workflow.md +321 -0
- package/bundled/locales/zh-TW/skills/claude-code/logging-guide/SKILL.md +285 -0
- package/bundled/locales/zh-TW/skills/claude-code/methodology-system/SKILL.md +131 -0
- package/bundled/locales/zh-TW/skills/claude-code/methodology-system/create-methodology.md +350 -0
- package/bundled/locales/zh-TW/skills/claude-code/methodology-system/runtime.md +279 -0
- package/bundled/locales/zh-TW/skills/claude-code/project-structure-guide/SKILL.md +143 -0
- package/bundled/locales/zh-TW/skills/claude-code/project-structure-guide/language-patterns.md +271 -0
- package/bundled/locales/zh-TW/skills/claude-code/refactoring-assistant/SKILL.md +162 -0
- package/bundled/locales/zh-TW/skills/claude-code/release-standards/SKILL.md +191 -0
- package/bundled/locales/zh-TW/skills/claude-code/release-standards/changelog-format.md +247 -0
- package/bundled/locales/zh-TW/skills/claude-code/release-standards/release-workflow.md +345 -0
- package/bundled/locales/zh-TW/skills/claude-code/release-standards/semantic-versioning.md +250 -0
- package/bundled/locales/zh-TW/skills/claude-code/requirement-assistant/SKILL.md +227 -0
- package/bundled/locales/zh-TW/skills/claude-code/requirement-assistant/requirement-checklist.md +325 -0
- package/bundled/locales/zh-TW/skills/claude-code/requirement-assistant/requirement-writing.md +399 -0
- package/bundled/locales/zh-TW/skills/claude-code/spec-driven-dev/SKILL.md +243 -0
- package/bundled/locales/zh-TW/skills/claude-code/tdd-assistant/SKILL.md +332 -0
- package/bundled/locales/zh-TW/skills/claude-code/tdd-assistant/language-examples.md +639 -0
- package/bundled/locales/zh-TW/skills/claude-code/tdd-assistant/tdd-workflow.md +486 -0
- package/bundled/locales/zh-TW/skills/claude-code/test-coverage-assistant/SKILL.md +282 -0
- package/bundled/locales/zh-TW/skills/claude-code/testing-guide/SKILL.md +234 -0
- package/bundled/locales/zh-TW/skills/claude-code/testing-guide/testing-pyramid.md +448 -0
- package/bundled/locales/zh-TW/skills/cline/README.md +58 -0
- package/bundled/locales/zh-TW/skills/copilot/README.md +61 -0
- package/bundled/locales/zh-TW/skills/copilot/copilot-instructions.md +79 -0
- package/bundled/locales/zh-TW/skills/cursor/README.md +58 -0
- package/bundled/locales/zh-TW/skills/windsurf/README.md +59 -0
- package/bundled/skills/claude-code/CONTRIBUTING.template.md +141 -0
- package/bundled/skills/claude-code/README.md +196 -0
- package/bundled/skills/claude-code/ai/standards/checkin.ai.yaml +21 -0
- package/bundled/skills/claude-code/ai/standards/commit.ai.yaml +20 -0
- package/bundled/skills/claude-code/ai/standards/refactoring.ai.yaml +34 -0
- package/bundled/skills/claude-code/ai/standards/testing.ai.yaml +41 -0
- package/bundled/skills/claude-code/ai-collaboration-standards/SKILL.md +175 -0
- package/bundled/skills/claude-code/ai-collaboration-standards/anti-hallucination.md +215 -0
- package/bundled/skills/claude-code/ai-collaboration-standards/certainty-labels.md +124 -0
- package/bundled/skills/claude-code/changelog-guide/SKILL.md +232 -0
- package/bundled/skills/claude-code/checkin-assistant/SKILL.md +402 -0
- package/bundled/skills/claude-code/code-review-assistant/SKILL.md +220 -0
- package/bundled/skills/claude-code/code-review-assistant/checkin-checklist.md +249 -0
- package/bundled/skills/claude-code/code-review-assistant/review-checklist.md +238 -0
- package/bundled/skills/claude-code/commands/README.md +78 -0
- package/bundled/skills/claude-code/commands/bdd.md +142 -0
- package/bundled/skills/claude-code/commands/changelog.md +57 -0
- package/bundled/skills/claude-code/commands/check.md +91 -0
- package/bundled/skills/claude-code/commands/commit.md +48 -0
- package/bundled/skills/claude-code/commands/config.md +97 -0
- package/bundled/skills/claude-code/commands/coverage.md +58 -0
- package/bundled/skills/claude-code/commands/docs.md +75 -0
- package/bundled/skills/claude-code/commands/init.md +88 -0
- package/bundled/skills/claude-code/commands/methodology.md +268 -0
- package/bundled/skills/claude-code/commands/release.md +50 -0
- package/bundled/skills/claude-code/commands/requirement.md +54 -0
- package/bundled/skills/claude-code/commands/review.md +50 -0
- package/bundled/skills/claude-code/commands/spec.md +69 -0
- package/bundled/skills/claude-code/commands/tdd.md +86 -0
- package/bundled/skills/claude-code/commands/update.md +122 -0
- package/bundled/skills/claude-code/commit-standards/SKILL.md +249 -0
- package/bundled/skills/claude-code/commit-standards/conventional-commits.md +256 -0
- package/bundled/skills/claude-code/commit-standards/language-options.md +164 -0
- package/bundled/skills/claude-code/documentation-guide/SKILL.md +416 -0
- package/bundled/skills/claude-code/documentation-guide/documentation-structure.md +349 -0
- package/bundled/skills/claude-code/documentation-guide/readme-template.md +404 -0
- package/bundled/skills/claude-code/error-code-guide/SKILL.md +264 -0
- package/bundled/skills/claude-code/git-workflow-guide/SKILL.md +226 -0
- package/bundled/skills/claude-code/git-workflow-guide/branch-naming.md +212 -0
- package/bundled/skills/claude-code/git-workflow-guide/git-workflow.md +313 -0
- package/bundled/skills/claude-code/logging-guide/SKILL.md +280 -0
- package/bundled/skills/claude-code/methodology-system/SKILL.md +215 -0
- package/bundled/skills/claude-code/methodology-system/create-methodology.md +450 -0
- package/bundled/skills/claude-code/methodology-system/runtime.md +271 -0
- package/bundled/skills/claude-code/project-structure-guide/SKILL.md +143 -0
- package/bundled/skills/claude-code/project-structure-guide/language-patterns.md +263 -0
- package/bundled/skills/claude-code/refactoring-assistant/SKILL.md +205 -0
- package/bundled/skills/claude-code/release-standards/SKILL.md +191 -0
- package/bundled/skills/claude-code/release-standards/changelog-format.md +239 -0
- package/bundled/skills/claude-code/release-standards/release-workflow.md +337 -0
- package/bundled/skills/claude-code/release-standards/semantic-versioning.md +242 -0
- package/bundled/skills/claude-code/requirement-assistant/SKILL.md +222 -0
- package/bundled/skills/claude-code/requirement-assistant/requirement-checklist.md +317 -0
- package/bundled/skills/claude-code/requirement-assistant/requirement-writing.md +391 -0
- package/bundled/skills/claude-code/spec-driven-dev/SKILL.md +238 -0
- package/bundled/skills/claude-code/tdd-assistant/SKILL.md +384 -0
- package/bundled/skills/claude-code/tdd-assistant/language-examples.md +1276 -0
- package/bundled/skills/claude-code/tdd-assistant/tdd-workflow.md +659 -0
- package/bundled/skills/claude-code/test-coverage-assistant/SKILL.md +277 -0
- package/bundled/skills/claude-code/testing-guide/SKILL.md +317 -0
- package/bundled/skills/claude-code/testing-guide/testing-pyramid.md +440 -0
- package/package.json +4 -2
- package/src/commands/check.js +38 -6
- package/src/commands/init.js +20 -6
- package/src/commands/list.js +7 -2
- package/src/commands/skills.js +0 -2
- package/src/commands/update.js +271 -0
- package/src/i18n/messages.js +161 -11
- package/src/utils/copier.js +63 -10
- package/src/utils/skills-installer.js +47 -11
- package/standards-registry.json +6 -3
|
@@ -0,0 +1,859 @@
|
|
|
1
|
+
# Git Workflow Standards
|
|
2
|
+
|
|
3
|
+
> **Language**: English | [繁體中文](../locales/zh-TW/core/git-workflow.md)
|
|
4
|
+
|
|
5
|
+
**Version**: 1.2.1
|
|
6
|
+
**Last Updated**: 2025-12-24
|
|
7
|
+
**Applicability**: All projects using Git for version control
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Purpose
|
|
12
|
+
|
|
13
|
+
This standard defines Git branching strategies and workflows to ensure consistent, predictable collaboration patterns across teams and projects.
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## Workflow Strategy Selection
|
|
18
|
+
|
|
19
|
+
**PROJECT MUST CHOOSE ONE** workflow strategy and document it clearly.
|
|
20
|
+
|
|
21
|
+
### Decision Tree
|
|
22
|
+
|
|
23
|
+
Use this flowchart to select the appropriate workflow:
|
|
24
|
+
|
|
25
|
+
```
|
|
26
|
+
┌─────────────────────────────────────┐
|
|
27
|
+
│ How often do you deploy to │
|
|
28
|
+
│ production? │
|
|
29
|
+
└───────────────┬─────────────────────┘
|
|
30
|
+
│
|
|
31
|
+
┌───────────────────────┼───────────────────────┐
|
|
32
|
+
▼ ▼ ▼
|
|
33
|
+
┌────────────────┐ ┌────────────────┐ ┌────────────────┐
|
|
34
|
+
│ Multiple times │ │ Weekly to │ │ Monthly or │
|
|
35
|
+
│ per day │ │ bi-weekly │ │ longer │
|
|
36
|
+
└───────┬────────┘ └───────┬────────┘ └───────┬────────┘
|
|
37
|
+
│ │ │
|
|
38
|
+
▼ ▼ ▼
|
|
39
|
+
┌────────────────┐ ┌────────────────┐ ┌────────────────┐
|
|
40
|
+
│ Trunk-Based │ │ GitHub Flow │ │ GitFlow │
|
|
41
|
+
│ Development │ │ │ │ │
|
|
42
|
+
└────────────────┘ └────────────────┘ └────────────────┘
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
### Selection Matrix
|
|
46
|
+
|
|
47
|
+
| Factor | GitFlow | GitHub Flow | Trunk-Based |
|
|
48
|
+
|--------|---------|-------------|-------------|
|
|
49
|
+
| **Release frequency** | Monthly+ | Weekly | Multiple/day |
|
|
50
|
+
| **Team size** | Large (10+) | Medium (5-15) | Small-Medium (3-10) |
|
|
51
|
+
| **CI/CD maturity** | Basic | Intermediate | Advanced |
|
|
52
|
+
| **Feature flags** | Optional | Optional | Required |
|
|
53
|
+
| **Hotfix process** | Dedicated branch | Same as feature | Same as feature |
|
|
54
|
+
| **Complexity** | High | Low | Medium |
|
|
55
|
+
|
|
56
|
+
### Quick Selection Guide
|
|
57
|
+
|
|
58
|
+
**Choose GitFlow if**:
|
|
59
|
+
- You have scheduled release cycles (monthly, quarterly)
|
|
60
|
+
- You maintain multiple production versions simultaneously
|
|
61
|
+
- You have separate teams for development and release management
|
|
62
|
+
|
|
63
|
+
**Choose GitHub Flow if**:
|
|
64
|
+
- You deploy to production weekly or on-demand
|
|
65
|
+
- You have a single production version
|
|
66
|
+
- You want simplicity with good traceability
|
|
67
|
+
|
|
68
|
+
**Choose Trunk-Based if**:
|
|
69
|
+
- You have mature CI/CD with automated testing
|
|
70
|
+
- Your team practices continuous integration
|
|
71
|
+
- You're comfortable with feature flags for incomplete features
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
## Strategy A: GitFlow
|
|
76
|
+
|
|
77
|
+
**Best For**:
|
|
78
|
+
- Scheduled releases (monthly, quarterly)
|
|
79
|
+
- Multiple production versions maintained simultaneously
|
|
80
|
+
- Clear distinction between development and production
|
|
81
|
+
- Large teams with formal release processes
|
|
82
|
+
|
|
83
|
+
### Branch Structure
|
|
84
|
+
|
|
85
|
+
```
|
|
86
|
+
main ─●────────●─────────●── (Production releases: v1.0, v2.0)
|
|
87
|
+
╱ ╲ ╲
|
|
88
|
+
develop ────●────●──────●─────────●── (Development mainline)
|
|
89
|
+
╱ ╲ ╲
|
|
90
|
+
feature/* ─●────────● ╲ (Feature branches)
|
|
91
|
+
╲
|
|
92
|
+
release/* ●───● (Release preparation)
|
|
93
|
+
╱
|
|
94
|
+
hotfix/* ────● (Emergency fixes)
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
### Branch Types
|
|
98
|
+
|
|
99
|
+
| Branch Type | Purpose | Base Branch | Merge Target | Lifetime |
|
|
100
|
+
|-------------|---------|-------------|--------------|----------|
|
|
101
|
+
| `main` | Production code | - | - | Permanent |
|
|
102
|
+
| `develop` | Integration branch | - | - | Permanent |
|
|
103
|
+
| `feature/*` | New features | `develop` | `develop` | Temporary |
|
|
104
|
+
| `release/*` | Release prep | `develop` | `main` + `develop` | Temporary |
|
|
105
|
+
| `hotfix/*` | Urgent fixes | `main` | `main` + `develop` | Temporary |
|
|
106
|
+
|
|
107
|
+
### Workflow Steps
|
|
108
|
+
|
|
109
|
+
#### 1. Feature Development
|
|
110
|
+
|
|
111
|
+
```bash
|
|
112
|
+
# Create feature branch from develop
|
|
113
|
+
git checkout develop
|
|
114
|
+
git pull origin develop
|
|
115
|
+
git checkout -b feature/oauth-login
|
|
116
|
+
|
|
117
|
+
# Work on feature
|
|
118
|
+
git add .
|
|
119
|
+
git commit -m "feat(auth): add OAuth2 login"
|
|
120
|
+
|
|
121
|
+
# Push to remote
|
|
122
|
+
git push -u origin feature/oauth-login
|
|
123
|
+
|
|
124
|
+
# Create pull request to develop
|
|
125
|
+
# After review approval, merge to develop
|
|
126
|
+
git checkout develop
|
|
127
|
+
git merge --no-ff feature/oauth-login
|
|
128
|
+
git push origin develop
|
|
129
|
+
|
|
130
|
+
# Delete feature branch
|
|
131
|
+
git branch -d feature/oauth-login
|
|
132
|
+
git push origin --delete feature/oauth-login
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
#### 2. Release Preparation
|
|
136
|
+
|
|
137
|
+
> **CHANGELOG Update**: Move entries from `[Unreleased]` to the new version section and add the release date. See [changelog-standards.md](changelog-standards.md) for detailed guidelines.
|
|
138
|
+
|
|
139
|
+
```bash
|
|
140
|
+
# Create release branch from develop
|
|
141
|
+
git checkout develop
|
|
142
|
+
git pull origin develop
|
|
143
|
+
git checkout -b release/v1.2.0
|
|
144
|
+
|
|
145
|
+
# Prepare release (version bump, changelog, etc.)
|
|
146
|
+
# 1. Update CHANGELOG.md: move [Unreleased] to [1.2.0] - YYYY-MM-DD
|
|
147
|
+
# 2. Update version in package.json (or equivalent)
|
|
148
|
+
npm version 1.2.0
|
|
149
|
+
git add package.json CHANGELOG.md
|
|
150
|
+
git commit -m "chore(release): prepare v1.2.0"
|
|
151
|
+
|
|
152
|
+
# Merge to main
|
|
153
|
+
git checkout main
|
|
154
|
+
git merge --no-ff release/v1.2.0
|
|
155
|
+
git tag -a v1.2.0 -m "Release version 1.2.0"
|
|
156
|
+
git push origin main --tags
|
|
157
|
+
|
|
158
|
+
# Merge back to develop
|
|
159
|
+
git checkout develop
|
|
160
|
+
git merge --no-ff release/v1.2.0
|
|
161
|
+
git push origin develop
|
|
162
|
+
|
|
163
|
+
# Delete release branch
|
|
164
|
+
git branch -d release/v1.2.0
|
|
165
|
+
git push origin --delete release/v1.2.0
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
#### 3. Hotfix
|
|
169
|
+
|
|
170
|
+
```bash
|
|
171
|
+
# Create hotfix branch from main
|
|
172
|
+
git checkout main
|
|
173
|
+
git pull origin main
|
|
174
|
+
git checkout -b hotfix/critical-security-fix
|
|
175
|
+
|
|
176
|
+
# Fix the issue
|
|
177
|
+
git add .
|
|
178
|
+
git commit -m "fix(security): patch SQL injection vulnerability"
|
|
179
|
+
|
|
180
|
+
# Merge to main
|
|
181
|
+
git checkout main
|
|
182
|
+
git merge --no-ff hotfix/critical-security-fix
|
|
183
|
+
git tag -a v1.2.1 -m "Hotfix version 1.2.1"
|
|
184
|
+
git push origin main --tags
|
|
185
|
+
|
|
186
|
+
# Merge to develop
|
|
187
|
+
git checkout develop
|
|
188
|
+
git merge --no-ff hotfix/critical-security-fix
|
|
189
|
+
git push origin develop
|
|
190
|
+
|
|
191
|
+
# Delete hotfix branch
|
|
192
|
+
git branch -d hotfix/critical-security-fix
|
|
193
|
+
git push origin --delete hotfix/critical-security-fix
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
---
|
|
197
|
+
|
|
198
|
+
## Strategy B: GitHub Flow
|
|
199
|
+
|
|
200
|
+
**Best For**:
|
|
201
|
+
- Continuous deployment
|
|
202
|
+
- Web applications
|
|
203
|
+
- Small to medium teams
|
|
204
|
+
- Fast iteration cycles
|
|
205
|
+
|
|
206
|
+
### Branch Structure
|
|
207
|
+
|
|
208
|
+
```
|
|
209
|
+
main ────●─────────●──────●── (Always deployable)
|
|
210
|
+
╲ ╱ ╱
|
|
211
|
+
feature/* ●───●───● ╱ (Feature + PR)
|
|
212
|
+
╱
|
|
213
|
+
bugfix/* ────● (Bug fixes)
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
### Branch Types
|
|
217
|
+
|
|
218
|
+
| Branch Type | Purpose | Base Branch | Merge Target | Lifetime |
|
|
219
|
+
|-------------|---------|-------------|--------------|----------|
|
|
220
|
+
| `main` | Production code | - | - | Permanent |
|
|
221
|
+
| `feature/*` | New features | `main` | `main` | Temporary |
|
|
222
|
+
| `bugfix/*` | Bug fixes | `main` | `main` | Temporary |
|
|
223
|
+
| `hotfix/*` | Urgent fixes | `main` | `main` | Temporary |
|
|
224
|
+
|
|
225
|
+
### Workflow Steps
|
|
226
|
+
|
|
227
|
+
```bash
|
|
228
|
+
# 1. Create feature branch from main
|
|
229
|
+
git checkout main
|
|
230
|
+
git pull origin main
|
|
231
|
+
git checkout -b feature/user-profile
|
|
232
|
+
|
|
233
|
+
# 2. Work and commit frequently
|
|
234
|
+
git add .
|
|
235
|
+
git commit -m "feat(profile): add avatar upload"
|
|
236
|
+
git push -u origin feature/user-profile
|
|
237
|
+
|
|
238
|
+
# 3. Open pull request to main
|
|
239
|
+
# Use GitHub/GitLab UI to create PR
|
|
240
|
+
|
|
241
|
+
# 4. After CI passes and review approval, merge to main
|
|
242
|
+
# (Usually done via GitHub/GitLab UI with "Squash and merge")
|
|
243
|
+
|
|
244
|
+
# 5. Deploy main to production
|
|
245
|
+
git checkout main
|
|
246
|
+
git pull origin main
|
|
247
|
+
# Trigger deployment pipeline
|
|
248
|
+
|
|
249
|
+
# 6. Delete feature branch (auto-deleted by GitHub/GitLab)
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
### Key Principles
|
|
253
|
+
|
|
254
|
+
1. **`main` is always deployable**
|
|
255
|
+
2. **Branch from `main`**
|
|
256
|
+
3. **Merge to `main` via PR**
|
|
257
|
+
4. **Deploy immediately after merge**
|
|
258
|
+
|
|
259
|
+
---
|
|
260
|
+
|
|
261
|
+
## Strategy C: Trunk-Based Development
|
|
262
|
+
|
|
263
|
+
**Best For**:
|
|
264
|
+
- Mature CI/CD pipelines
|
|
265
|
+
- High-trust, experienced teams
|
|
266
|
+
- Frequent integration (multiple times per day)
|
|
267
|
+
- Feature flags for incomplete features
|
|
268
|
+
|
|
269
|
+
### Branch Structure
|
|
270
|
+
|
|
271
|
+
```
|
|
272
|
+
main ────●─●─●─●─●─●─●──► (Single long-lived branch)
|
|
273
|
+
╲│╱ ╲│╱ ╲│╱
|
|
274
|
+
feature/* ● ● ● (Very short-lived, ≤2 days)
|
|
275
|
+
```
|
|
276
|
+
|
|
277
|
+
### Branch Types
|
|
278
|
+
|
|
279
|
+
| Branch Type | Purpose | Base Branch | Merge Target | Lifetime |
|
|
280
|
+
|-------------|---------|-------------|--------------|----------|
|
|
281
|
+
| `main` | Trunk | - | - | Permanent |
|
|
282
|
+
| `feature/*` | Small changes | `main` | `main` | ≤2 days |
|
|
283
|
+
|
|
284
|
+
### Workflow Steps
|
|
285
|
+
|
|
286
|
+
```bash
|
|
287
|
+
# 1. Create short-lived branch
|
|
288
|
+
git checkout main
|
|
289
|
+
git pull origin main
|
|
290
|
+
git checkout -b feature/add-validation
|
|
291
|
+
|
|
292
|
+
# 2. Make small, atomic change
|
|
293
|
+
git add .
|
|
294
|
+
git commit -m "feat(validation): add email format check"
|
|
295
|
+
|
|
296
|
+
# 3. Push and create PR (same day)
|
|
297
|
+
git push -u origin feature/add-validation
|
|
298
|
+
|
|
299
|
+
# 4. Merge quickly after review (within hours)
|
|
300
|
+
# Prefer rebase to keep linear history
|
|
301
|
+
git checkout main
|
|
302
|
+
git pull origin main
|
|
303
|
+
git rebase main feature/add-validation
|
|
304
|
+
git checkout main
|
|
305
|
+
git merge --ff-only feature/add-validation
|
|
306
|
+
git push origin main
|
|
307
|
+
|
|
308
|
+
# 5. Delete branch immediately
|
|
309
|
+
git branch -d feature/add-validation
|
|
310
|
+
git push origin --delete feature/add-validation
|
|
311
|
+
```
|
|
312
|
+
|
|
313
|
+
### Key Principles
|
|
314
|
+
|
|
315
|
+
1. **Integrate frequently** (multiple times per day)
|
|
316
|
+
2. **Keep branches short-lived** (≤2 days)
|
|
317
|
+
3. **Use feature flags** for incomplete features
|
|
318
|
+
4. **Automate everything** (tests, builds, deployments)
|
|
319
|
+
|
|
320
|
+
---
|
|
321
|
+
|
|
322
|
+
## Pre-branch Checklist
|
|
323
|
+
|
|
324
|
+
Before creating a new branch, complete these checks to prevent common issues.
|
|
325
|
+
|
|
326
|
+
### For GitFlow and GitHub Flow
|
|
327
|
+
|
|
328
|
+
#### 1. Check for Unmerged Branches
|
|
329
|
+
|
|
330
|
+
```bash
|
|
331
|
+
git branch --no-merged main
|
|
332
|
+
# For GitFlow, also check:
|
|
333
|
+
git branch --no-merged develop
|
|
334
|
+
```
|
|
335
|
+
|
|
336
|
+
- **If unmerged branches exist, handle them first** (merge or close)
|
|
337
|
+
- **Do NOT create new feature branches with unmerged work pending**
|
|
338
|
+
|
|
339
|
+
#### 2. Sync Latest Code
|
|
340
|
+
|
|
341
|
+
```bash
|
|
342
|
+
git checkout main # or develop for GitFlow
|
|
343
|
+
git pull origin main
|
|
344
|
+
```
|
|
345
|
+
|
|
346
|
+
#### 3. Verify Tests Pass
|
|
347
|
+
|
|
348
|
+
```bash
|
|
349
|
+
# Run your project's test suite
|
|
350
|
+
npm test # Node.js
|
|
351
|
+
pytest # Python
|
|
352
|
+
./gradlew test # Java/Kotlin
|
|
353
|
+
```
|
|
354
|
+
|
|
355
|
+
#### 4. Create Branch
|
|
356
|
+
|
|
357
|
+
```bash
|
|
358
|
+
git checkout -b feature/description
|
|
359
|
+
```
|
|
360
|
+
|
|
361
|
+
### Why This Matters
|
|
362
|
+
|
|
363
|
+
| Consequence of Skipping | Impact |
|
|
364
|
+
|------------------------|--------|
|
|
365
|
+
| Fixes scattered across branches | `main` still has bugs |
|
|
366
|
+
| Features depend on each other | New branch missing previous feature's code |
|
|
367
|
+
| Merge order confusion | More conflicts, harder to track history |
|
|
368
|
+
| Incomplete testing | Each branch only tests its own part |
|
|
369
|
+
|
|
370
|
+
### For Trunk-Based Development
|
|
371
|
+
|
|
372
|
+
Trunk-Based Development has **different requirements** due to its short-lived branch nature (≤2 days):
|
|
373
|
+
|
|
374
|
+
| Check | Applicability | Notes |
|
|
375
|
+
|-------|--------------|-------|
|
|
376
|
+
| Check unmerged branches | ⚠️ **Less relevant** | Branches should not exist >2 days by design |
|
|
377
|
+
| Sync latest code | ✅ **Critical** | Even more important due to frequent integration |
|
|
378
|
+
| Verify tests pass | ✅ **Critical** | Automation is core to this workflow |
|
|
379
|
+
|
|
380
|
+
**Key difference**: If you have unmerged branches older than 2 days in Trunk-Based Development, this itself violates the workflow principles. Focus on **frequent integration** rather than checking for unmerged branches.
|
|
381
|
+
|
|
382
|
+
---
|
|
383
|
+
|
|
384
|
+
## Branch Naming Conventions
|
|
385
|
+
|
|
386
|
+
### Standard Format
|
|
387
|
+
|
|
388
|
+
```
|
|
389
|
+
<type>/<short-description>
|
|
390
|
+
```
|
|
391
|
+
|
|
392
|
+
### Types
|
|
393
|
+
|
|
394
|
+
| Type | Usage | Example |
|
|
395
|
+
|------|-------|---------|
|
|
396
|
+
| `feature/` | New functionality | `feature/oauth-login` |
|
|
397
|
+
| `fix/` or `bugfix/` | Bug fixes | `fix/memory-leak` |
|
|
398
|
+
| `hotfix/` | Urgent production fixes | `hotfix/security-patch` |
|
|
399
|
+
| `refactor/` | Code refactoring | `refactor/extract-service` |
|
|
400
|
+
| `docs/` | Documentation only | `docs/api-reference` |
|
|
401
|
+
| `test/` | Test additions | `test/integration-tests` |
|
|
402
|
+
| `chore/` | Maintenance tasks | `chore/update-dependencies` |
|
|
403
|
+
| `release/` | Release preparation (GitFlow only) | `release/v1.2.0` |
|
|
404
|
+
|
|
405
|
+
### Naming Rules
|
|
406
|
+
|
|
407
|
+
1. **Use lowercase**
|
|
408
|
+
2. **Use hyphens for spaces**
|
|
409
|
+
3. **Be descriptive but concise**
|
|
410
|
+
4. **Avoid issue numbers as only identifier**
|
|
411
|
+
|
|
412
|
+
**Good Examples**:
|
|
413
|
+
```
|
|
414
|
+
feature/user-authentication
|
|
415
|
+
fix/null-pointer-in-payment
|
|
416
|
+
hotfix/critical-data-loss
|
|
417
|
+
refactor/database-connection-pool
|
|
418
|
+
docs/update-installation-guide
|
|
419
|
+
```
|
|
420
|
+
|
|
421
|
+
**Bad Examples**:
|
|
422
|
+
```
|
|
423
|
+
feature/123 # ❌ Not descriptive
|
|
424
|
+
Fix-Bug # ❌ Not lowercase, vague
|
|
425
|
+
feature/add_new_feature # ❌ Underscores, too vague
|
|
426
|
+
myFeature # ❌ camelCase, no type prefix
|
|
427
|
+
```
|
|
428
|
+
|
|
429
|
+
---
|
|
430
|
+
|
|
431
|
+
## Merge Strategies
|
|
432
|
+
|
|
433
|
+
**PROJECT MUST CHOOSE ONE** for each branch type.
|
|
434
|
+
|
|
435
|
+
### Option 1: Merge Commit (--no-ff)
|
|
436
|
+
|
|
437
|
+
**Preserves branch history**
|
|
438
|
+
|
|
439
|
+
```bash
|
|
440
|
+
git merge --no-ff feature/user-auth
|
|
441
|
+
```
|
|
442
|
+
|
|
443
|
+
**Pros**:
|
|
444
|
+
- ✅ Complete history preserved
|
|
445
|
+
- ✅ Easy to revert entire feature
|
|
446
|
+
- ✅ Clear feature boundaries
|
|
447
|
+
|
|
448
|
+
**Cons**:
|
|
449
|
+
- ❌ Cluttered git log
|
|
450
|
+
- ❌ Complex graph visualization
|
|
451
|
+
|
|
452
|
+
**Best For**: GitFlow, long-lived features
|
|
453
|
+
|
|
454
|
+
---
|
|
455
|
+
|
|
456
|
+
### Option 2: Squash Merge
|
|
457
|
+
|
|
458
|
+
**Combines all commits into one**
|
|
459
|
+
|
|
460
|
+
```bash
|
|
461
|
+
git merge --squash feature/user-auth
|
|
462
|
+
git commit -m "feat(auth): add user authentication"
|
|
463
|
+
```
|
|
464
|
+
|
|
465
|
+
**Pros**:
|
|
466
|
+
- ✅ Clean, linear history
|
|
467
|
+
- ✅ One commit per feature
|
|
468
|
+
- ✅ Easy to read git log
|
|
469
|
+
|
|
470
|
+
**Cons**:
|
|
471
|
+
- ❌ Loses detailed history
|
|
472
|
+
- ❌ Can't cherry-pick individual commits
|
|
473
|
+
|
|
474
|
+
**Best For**: GitHub Flow, feature branches
|
|
475
|
+
|
|
476
|
+
---
|
|
477
|
+
|
|
478
|
+
### Option 3: Rebase and Fast-Forward
|
|
479
|
+
|
|
480
|
+
**Replays commits on top of target**
|
|
481
|
+
|
|
482
|
+
```bash
|
|
483
|
+
git rebase main feature/user-auth
|
|
484
|
+
git checkout main
|
|
485
|
+
git merge --ff-only feature/user-auth
|
|
486
|
+
```
|
|
487
|
+
|
|
488
|
+
**Pros**:
|
|
489
|
+
- ✅ Linear, clean history
|
|
490
|
+
- ✅ Preserves individual commits
|
|
491
|
+
- ✅ No merge commits
|
|
492
|
+
|
|
493
|
+
**Cons**:
|
|
494
|
+
- ❌ Rewrites history (don't use on shared branches)
|
|
495
|
+
- ❌ Resolving conflicts can be tedious
|
|
496
|
+
|
|
497
|
+
**Best For**: Trunk-Based Development, short-lived branches
|
|
498
|
+
|
|
499
|
+
---
|
|
500
|
+
|
|
501
|
+
## Conflict Resolution
|
|
502
|
+
|
|
503
|
+
### Prevention
|
|
504
|
+
|
|
505
|
+
1. **Sync frequently**
|
|
506
|
+
```bash
|
|
507
|
+
git checkout main
|
|
508
|
+
git pull origin main
|
|
509
|
+
git checkout feature/my-feature
|
|
510
|
+
git merge main # or git rebase main
|
|
511
|
+
```
|
|
512
|
+
|
|
513
|
+
2. **Keep branches small**
|
|
514
|
+
- Avoid long-lived feature branches
|
|
515
|
+
- Break large features into smaller PRs
|
|
516
|
+
|
|
517
|
+
3. **Communicate**
|
|
518
|
+
- Announce major refactoring
|
|
519
|
+
- Coordinate on shared files
|
|
520
|
+
|
|
521
|
+
### Resolution Steps
|
|
522
|
+
|
|
523
|
+
```bash
|
|
524
|
+
# 1. Attempt merge
|
|
525
|
+
git checkout main
|
|
526
|
+
git pull origin main
|
|
527
|
+
git checkout feature/my-feature
|
|
528
|
+
git merge main
|
|
529
|
+
|
|
530
|
+
# 2. Conflicts occur - Git marks them in files
|
|
531
|
+
# Open files and resolve conflicts:
|
|
532
|
+
# <<<<<<< HEAD
|
|
533
|
+
# Current branch changes
|
|
534
|
+
# =======
|
|
535
|
+
# Incoming changes
|
|
536
|
+
# >>>>>>> main
|
|
537
|
+
|
|
538
|
+
# 3. After resolving, stage files
|
|
539
|
+
git add resolved-file.js
|
|
540
|
+
|
|
541
|
+
# 4. Complete the merge
|
|
542
|
+
git commit -m "chore: resolve merge conflicts with main"
|
|
543
|
+
|
|
544
|
+
# 5. Test thoroughly
|
|
545
|
+
npm test
|
|
546
|
+
|
|
547
|
+
# 6. Push
|
|
548
|
+
git push origin feature/my-feature
|
|
549
|
+
```
|
|
550
|
+
|
|
551
|
+
---
|
|
552
|
+
|
|
553
|
+
## Tagging and Releases
|
|
554
|
+
|
|
555
|
+
### Semantic Versioning
|
|
556
|
+
|
|
557
|
+
Follow [Semantic Versioning 2.0.0](https://semver.org/):
|
|
558
|
+
|
|
559
|
+
```
|
|
560
|
+
MAJOR.MINOR.PATCH
|
|
561
|
+
|
|
562
|
+
Example: v2.3.1
|
|
563
|
+
```
|
|
564
|
+
|
|
565
|
+
- **MAJOR**: Breaking changes (incompatible API changes)
|
|
566
|
+
- **MINOR**: New features (backward-compatible)
|
|
567
|
+
- **PATCH**: Bug fixes (backward-compatible)
|
|
568
|
+
|
|
569
|
+
### Creating Tags
|
|
570
|
+
|
|
571
|
+
```bash
|
|
572
|
+
# Annotated tag (recommended)
|
|
573
|
+
git tag -a v1.2.0 -m "Release version 1.2.0: Add OAuth2 support"
|
|
574
|
+
|
|
575
|
+
# Push tag to remote
|
|
576
|
+
git push origin v1.2.0
|
|
577
|
+
|
|
578
|
+
# Push all tags
|
|
579
|
+
git push origin --tags
|
|
580
|
+
|
|
581
|
+
# List tags
|
|
582
|
+
git tag -l
|
|
583
|
+
```
|
|
584
|
+
|
|
585
|
+
### Pre-release Versions
|
|
586
|
+
|
|
587
|
+
```
|
|
588
|
+
v1.2.0-alpha.1 # Alpha release
|
|
589
|
+
v1.2.0-beta.2 # Beta release
|
|
590
|
+
v1.2.0-rc.1 # Release candidate
|
|
591
|
+
```
|
|
592
|
+
|
|
593
|
+
---
|
|
594
|
+
|
|
595
|
+
## Protected Branches
|
|
596
|
+
|
|
597
|
+
Configure branch protection rules:
|
|
598
|
+
|
|
599
|
+
### Recommended Protection for `main`/`develop`:
|
|
600
|
+
|
|
601
|
+
- ✅ **Require pull request reviews** (1-2 reviewers)
|
|
602
|
+
- ✅ **Require status checks to pass** (CI tests, linting)
|
|
603
|
+
- ✅ **Require branches to be up to date** before merging
|
|
604
|
+
- ✅ **Include administrators** in restrictions
|
|
605
|
+
- ❌ **Do not allow force pushes**
|
|
606
|
+
- ❌ **Do not allow deletions**
|
|
607
|
+
|
|
608
|
+
**Configuration Example (GitHub)**:
|
|
609
|
+
```
|
|
610
|
+
Settings → Branches → Branch protection rules
|
|
611
|
+
|
|
612
|
+
Rule: main
|
|
613
|
+
☑ Require pull request before merging
|
|
614
|
+
☑ Require approvals: 1
|
|
615
|
+
☑ Require status checks before merging
|
|
616
|
+
☑ Require branches to be up to date
|
|
617
|
+
☑ Status checks: CI/Build, Lint, Tests
|
|
618
|
+
☑ Do not allow bypassing the above settings
|
|
619
|
+
☐ Allow force pushes
|
|
620
|
+
☐ Allow deletions
|
|
621
|
+
```
|
|
622
|
+
|
|
623
|
+
---
|
|
624
|
+
|
|
625
|
+
## Pull Request Workflow
|
|
626
|
+
|
|
627
|
+
### PR Creation Checklist
|
|
628
|
+
|
|
629
|
+
- [ ] **Title follows commit convention** (e.g., `feat(auth): add OAuth2`)
|
|
630
|
+
- [ ] **Description explains why** (not just what)
|
|
631
|
+
- [ ] **Linked to issue** (e.g., "Closes #123")
|
|
632
|
+
- [ ] **Tests included** for new functionality
|
|
633
|
+
- [ ] **Documentation updated** if needed
|
|
634
|
+
- [ ] **Breaking changes highlighted** in description
|
|
635
|
+
- [ ] **Screenshots/GIFs** for UI changes
|
|
636
|
+
|
|
637
|
+
### PR Description Template
|
|
638
|
+
|
|
639
|
+
```markdown
|
|
640
|
+
## What
|
|
641
|
+
|
|
642
|
+
[Brief description of what this PR does]
|
|
643
|
+
|
|
644
|
+
## Why
|
|
645
|
+
|
|
646
|
+
[Explanation of why this change is needed]
|
|
647
|
+
|
|
648
|
+
## Changes
|
|
649
|
+
|
|
650
|
+
- [Bullet list of main changes]
|
|
651
|
+
- [Mark breaking changes with ⚠️]
|
|
652
|
+
|
|
653
|
+
## Testing
|
|
654
|
+
|
|
655
|
+
- [ ] Unit tests added/updated
|
|
656
|
+
- [ ] Integration tests pass
|
|
657
|
+
- [ ] Manual testing performed
|
|
658
|
+
|
|
659
|
+
## Screenshots (if applicable)
|
|
660
|
+
|
|
661
|
+
[Add screenshots for UI changes]
|
|
662
|
+
|
|
663
|
+
## Related Issues
|
|
664
|
+
|
|
665
|
+
Closes #123
|
|
666
|
+
Refs #456
|
|
667
|
+
```
|
|
668
|
+
|
|
669
|
+
---
|
|
670
|
+
|
|
671
|
+
## Git Commands Reference
|
|
672
|
+
|
|
673
|
+
### Daily Operations
|
|
674
|
+
|
|
675
|
+
```bash
|
|
676
|
+
# Check status
|
|
677
|
+
git status
|
|
678
|
+
|
|
679
|
+
# View changes
|
|
680
|
+
git diff
|
|
681
|
+
git diff --staged
|
|
682
|
+
|
|
683
|
+
# Stage changes
|
|
684
|
+
git add file.js
|
|
685
|
+
git add .
|
|
686
|
+
|
|
687
|
+
# Commit
|
|
688
|
+
git commit -m "feat: add feature"
|
|
689
|
+
|
|
690
|
+
# Push
|
|
691
|
+
git push origin feature/my-feature
|
|
692
|
+
|
|
693
|
+
# Pull latest
|
|
694
|
+
git pull origin main
|
|
695
|
+
|
|
696
|
+
# View history
|
|
697
|
+
git log --oneline --graph --all
|
|
698
|
+
```
|
|
699
|
+
|
|
700
|
+
### Branch Operations
|
|
701
|
+
|
|
702
|
+
```bash
|
|
703
|
+
# List branches
|
|
704
|
+
git branch -a
|
|
705
|
+
|
|
706
|
+
# Create branch
|
|
707
|
+
git checkout -b feature/new-feature
|
|
708
|
+
|
|
709
|
+
# Switch branch
|
|
710
|
+
git checkout main
|
|
711
|
+
|
|
712
|
+
# Delete local branch
|
|
713
|
+
git branch -d feature/old-feature
|
|
714
|
+
|
|
715
|
+
# Delete remote branch
|
|
716
|
+
git push origin --delete feature/old-feature
|
|
717
|
+
|
|
718
|
+
# Rename branch
|
|
719
|
+
git branch -m old-name new-name
|
|
720
|
+
```
|
|
721
|
+
|
|
722
|
+
### Advanced Operations
|
|
723
|
+
|
|
724
|
+
```bash
|
|
725
|
+
# Stash changes
|
|
726
|
+
git stash
|
|
727
|
+
git stash pop
|
|
728
|
+
|
|
729
|
+
# Cherry-pick commit
|
|
730
|
+
git cherry-pick <commit-hash>
|
|
731
|
+
|
|
732
|
+
# Revert commit
|
|
733
|
+
git revert <commit-hash>
|
|
734
|
+
|
|
735
|
+
# Reset to previous commit (dangerous!)
|
|
736
|
+
git reset --hard <commit-hash>
|
|
737
|
+
|
|
738
|
+
# Amend last commit
|
|
739
|
+
git commit --amend
|
|
740
|
+
|
|
741
|
+
# Interactive rebase (clean up commits)
|
|
742
|
+
git rebase -i HEAD~3
|
|
743
|
+
```
|
|
744
|
+
|
|
745
|
+
---
|
|
746
|
+
|
|
747
|
+
## Project Configuration Template
|
|
748
|
+
|
|
749
|
+
Document your workflow in `CONTRIBUTING.md`:
|
|
750
|
+
|
|
751
|
+
```markdown
|
|
752
|
+
## Git Workflow
|
|
753
|
+
|
|
754
|
+
### Branching Strategy
|
|
755
|
+
This project uses **[GitFlow / GitHub Flow / Trunk-Based Development]**.
|
|
756
|
+
|
|
757
|
+
### Branch Types
|
|
758
|
+
- `main`: Production code
|
|
759
|
+
- `develop`: Development mainline (GitFlow only)
|
|
760
|
+
- `feature/*`: New features
|
|
761
|
+
- `fix/*`: Bug fixes
|
|
762
|
+
- `hotfix/*`: Urgent production fixes
|
|
763
|
+
|
|
764
|
+
### Branch Naming
|
|
765
|
+
Format: `<type>/<description>`
|
|
766
|
+
Example: `feature/oauth-login`, `fix/memory-leak`
|
|
767
|
+
|
|
768
|
+
### Merge Strategy
|
|
769
|
+
- Feature branches: **[Squash / Merge commit / Rebase]**
|
|
770
|
+
- Release branches: Merge commit (--no-ff)
|
|
771
|
+
- Hotfix branches: Merge commit (--no-ff)
|
|
772
|
+
|
|
773
|
+
### Protected Branches
|
|
774
|
+
- `main`: Requires 1 review, CI must pass
|
|
775
|
+
- `develop`: Requires 1 review (if using GitFlow)
|
|
776
|
+
|
|
777
|
+
### Pull Request Process
|
|
778
|
+
1. Create branch from `[main/develop]`
|
|
779
|
+
2. Make changes and push
|
|
780
|
+
3. Open PR with description
|
|
781
|
+
4. Wait for review approval
|
|
782
|
+
5. Ensure CI passes
|
|
783
|
+
6. Merge using **[strategy]**
|
|
784
|
+
```
|
|
785
|
+
|
|
786
|
+
---
|
|
787
|
+
|
|
788
|
+
## Troubleshooting
|
|
789
|
+
|
|
790
|
+
### Accidentally Committed to Wrong Branch
|
|
791
|
+
|
|
792
|
+
```bash
|
|
793
|
+
# Undo last commit but keep changes
|
|
794
|
+
git reset --soft HEAD~1
|
|
795
|
+
|
|
796
|
+
# Switch to correct branch
|
|
797
|
+
git checkout correct-branch
|
|
798
|
+
|
|
799
|
+
# Commit changes
|
|
800
|
+
git add .
|
|
801
|
+
git commit -m "feat: add feature"
|
|
802
|
+
```
|
|
803
|
+
|
|
804
|
+
### Need to Update Branch from Main
|
|
805
|
+
|
|
806
|
+
```bash
|
|
807
|
+
# Option 1: Merge (preserves history)
|
|
808
|
+
git checkout feature/my-feature
|
|
809
|
+
git merge main
|
|
810
|
+
|
|
811
|
+
# Option 2: Rebase (cleaner history)
|
|
812
|
+
git checkout feature/my-feature
|
|
813
|
+
git rebase main
|
|
814
|
+
```
|
|
815
|
+
|
|
816
|
+
### Accidentally Force Pushed to Protected Branch
|
|
817
|
+
|
|
818
|
+
```bash
|
|
819
|
+
# ⚠️ Contact team immediately
|
|
820
|
+
# ⚠️ Check if branch protection was enabled
|
|
821
|
+
# ⚠️ Restore from reflog if needed:
|
|
822
|
+
git reflog
|
|
823
|
+
git reset --hard <previous-commit-hash>
|
|
824
|
+
```
|
|
825
|
+
|
|
826
|
+
---
|
|
827
|
+
|
|
828
|
+
## Related Standards
|
|
829
|
+
|
|
830
|
+
- [Commit Message Guide](commit-message-guide.md)
|
|
831
|
+
- [Code Check-in Standards](checkin-standards.md)
|
|
832
|
+
- [Versioning Standard](versioning.md)
|
|
833
|
+
- [Changelog Standards](changelog-standards.md)
|
|
834
|
+
|
|
835
|
+
---
|
|
836
|
+
|
|
837
|
+
## Version History
|
|
838
|
+
|
|
839
|
+
| Version | Date | Changes |
|
|
840
|
+
|---------|------|---------|
|
|
841
|
+
| 1.2.1 | 2025-12-24 | Added: Related Standards section |
|
|
842
|
+
| 1.2.0 | 2025-12-16 | Added: Decision tree, selection matrix, and quick selection guide for workflow strategy |
|
|
843
|
+
| 1.1.0 | 2025-12-08 | Add pre-branch checklist section with workflow-specific guidance |
|
|
844
|
+
| 1.0.0 | 2025-11-12 | Initial Git workflow standard |
|
|
845
|
+
|
|
846
|
+
---
|
|
847
|
+
|
|
848
|
+
## References
|
|
849
|
+
|
|
850
|
+
- [GitFlow Original Article](https://nvie.com/posts/a-successful-git-branching-model/)
|
|
851
|
+
- [GitHub Flow Guide](https://guides.github.com/introduction/flow/)
|
|
852
|
+
- [Trunk-Based Development](https://trunkbaseddevelopment.com/)
|
|
853
|
+
- [Semantic Versioning](https://semver.org/)
|
|
854
|
+
|
|
855
|
+
---
|
|
856
|
+
|
|
857
|
+
## License
|
|
858
|
+
|
|
859
|
+
This standard is released under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/).
|