WordPress Developer Ukraine, Kyiv
git filter-repo: Removing Sensitive Files and Rewriting History

git filter-repo: Removing Sensitive Files and Rewriting History

Accidentally committing a wp-config.php with production credentials, an .env file, or a private key requires a proper history rewrite — not just a new commit that deletes the file. git filter-repo (the official replacement for git filter-branch) is orders of magnitude faster, safer, and more ergonomic for removing files, rewriting commit messages, and transplanting subdirectories…
Git Signed Commits with SSH Keys: Vigilant Mode and Verified Badges

Git Signed Commits with SSH Keys: Vigilant Mode and Verified Badges

Git commit signing proves that a commit was created by the person who holds a specific cryptographic key — preventing commit authorship spoofing (anyone can set user.email to impersonate a contributor). GitHub and GitLab display a “Verified” badge on signed commits, and with vigilant mode enabled, GitHub marks all unsigned commits as “Unverified” — providing…
Git Bundle: Offline Repository Transfer and Air-Gap Deployments

Git Bundle: Offline Repository Transfer and Air-Gap Deployments

git bundle creates a single portable file containing a Git repository or a subset of its history — branches, tags, and all referenced objects — that can be transferred on a USB drive, email, or any medium that does not support Git protocol. For WordPress deployments in air-gapped environments (no internet on the production server),…
Git LFS: Tracking Large Media Files in WordPress Theme Repositories

Git LFS: Tracking Large Media Files in WordPress Theme Repositories

WordPress theme repositories accumulate large binary assets — PSDs, design tokens, font files, video demos — that bloat the Git history and slow down every clone. Git LFS (Large File Storage) replaces these files in the repository with small pointer files while storing the actual binaries on a separate LFS server (GitHub LFS, GitLab LFS,…
Git Hooks with Husky and lint-staged for WordPress Projects

Git Hooks with Husky and lint-staged for WordPress Projects

Automating code quality checks at commit time — running PHPCS, ESLint, and Prettier only on the files being staged — prevents style violations and syntax errors from ever reaching the repository. Husky manages the Git hooks and lint-staged runs the linters against staged files only, keeping the pre-commit hook fast even in large WordPress projects.
Git Maintenance and Repository Housekeeping: gc, pack-refs, and commit-graph

Git Maintenance and Repository Housekeeping: gc, pack-refs, and commit-g ...

Large WordPress project repositories accumulate loose objects, packed-ref files, and stale remote tracking branches over time. Git’s built-in git maintenance command (available since Git 2.30) automates the housekeeping tasks that used to require manually running git gc, git pack-refs, and git commit-graph write — and it can be scheduled to run in the background on…
GitHub Actions: Reusable Workflows and Composite Actions for WordPress CI

GitHub Actions: Reusable Workflows and Composite Actions for WordPress C ...

When multiple WordPress repositories share the same CI pipeline — linting, PHPCS, PHPUnit, deployment — duplicating workflow YAML across repos creates a maintenance burden. GitHub Actions solves this with two complementary features: reusable workflows (call a workflow file from another repo like a function) and composite actions (bundle multiple steps into a reusable action that…
Git Sparse Index and Partial Clones for Large Monorepos

Git Sparse Index and Partial Clones for Large Monorepos

When a Git repository grows to hundreds of thousands of files, even simple operations like git status become slow because Git must read the full index. Two relatively recent features — partial clones (fetch only the objects you need) and the sparse index (compress index entries for paths outside your sparse-checkout cone) — together cut…