Was Sie erreichen werden
Sie werden ein gemeinsames Git-Repository mit Branch-Schutz, einem sauberen Default-Workflow, Hooks fur Code-Qualitat und CI-Integration konfigurieren.
Schritt 1: das Repository erstellen
git clone [email protected]:myorg/project.git
cd project
Schritt 2: Default-Branch konfigurieren
git config init.defaultBranch main
Schritt 3: Branch-Schutz
- Eine Pull Request vor Merge erfordern.
- Mindestens einen genehmigenden Review erfordern.
- Status-Checks erfordern.
- Lineare Historie erfordern.
- Force-Pushes verbieten.
- Direktes Loschen verbieten.
Schritt 4: .gitignore und .gitattributes
# .gitignore
node_modules/
dist/
.env*
!.env.example
.DS_Store
*.swp
# .gitattributes
* text=auto eol=lf
*.png binary
*.jpg binary
*.pdf binary
Schritt 5: CODEOWNERS
# .github/CODEOWNERS
* @myorg/maintainers
/docs/ @myorg/docs-team
/infra/ @myorg/devops
Schritt 6: PR- und Issue-Templates
# .github/PULL_REQUEST_TEMPLATE.md
## Summary
## Test plan
- [ ]
## Screenshots / videos (if UI)
## Linked issues
Schritt 7: Pre-Commit-Hooks
npm install --save-dev husky lint-staged
npx husky init
# .husky/pre-commit
npx lint-staged
# package.json
"lint-staged": {
"*.{js,ts}": ["eslint --fix", "prettier --write"]
}
Schritt 8: CI-Konfiguration
# .github/workflows/ci.yml
name: CI
on:
push:
branches: [main]
pull_request:
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '20'
- run: npm ci
- run: npm run lint
- run: npm test
Schritt 9: Geheimnis-Scanning
- uses: gitleaks/gitleaks-action@v2
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Schritt 10: Beitragsdokumentation
Branch-Naming, Commit-Message-Format und PR-Prozess dokumentieren.
Schritt 11: das Team einladen
Teammitglieder mit angemessenen Berechtigungen hinzufugen.
Schritt 12: erste PR
Eine kleine PR erstellen, um den Prozess zu durchlaufen.
Wartung
- Branch-Schutz-Regeln vierteljahrlich uberprufen.
- CODEOWNERS bei Teamanderungen aktualisieren.
- Periodisch gemergten Branches prunen.