CI/CD
Running code quality measures on pull requests is helpful. By protecting the branch, you can make sure the tests pass before a merge is permitted.
Untracked files
Find untracked files that made their way into the git repo. Useful for CI/CD pipelines and running on pull requests.
if [[ ! -z $(git ls-files -i --exclude-standard) ]]; then exit 1; fi
Credit: How to automate CI checks for PRs in WordPress delivery | Buddy Webinar #15
Check for merge conflicts
! git grep -E \"<<<<<<< |>>>>>>> \" -- './*' ':!buddy.yml' ':!.buddy/*'
Credit: How to automate CI checks for PRs in WordPress delivery | Buddy Webinar #15
Subtree
What it is
- Inject dependency in a subdirectory
- Extract a subdirectory as a separate project
- Solves some of the problems associated with git submodules
Benefits
- No new interface to learn
- Stores as regular commits
- Clean integration points
Other notes
git subtree add --prefix target-folder https://.... main --squash
git ls-remote
allows you to list all symbolic names to know what version was pulled into that commit.
Subtree is not good if you have a lot of constant updates to the dependencies
git subtree split --prefix my/project/ --branch extracted
- splits out entire history of a directory into a new directory