I use Visual Studio to develop C# app, but I usually use git cli to run git command instead of Visual Studio git tools.
I don't have much issue doing this, but I sometimes encounter issues. For example:
- Visual Studio don't save csproj file automatically, and I forget to save it before
- I usually run
dotnet test, but I sometimes forget to confirm it
In both cases, I see CI error happens in the cloud which is embarrassing.
In such case, I can use git hook to make sure I run build and test right before I do
1. Go to .git/hooks folder and copy
2. Rename it to
3. Replace the code.
#!/bin/sh echo "dotnet build" dotnet clean; dotnet build rc=$? if [[ $rc != 0 ]] ; then echo -e "build failed" exit $rc fi dotnet "dotnet test" rc=$? if [[ $rc != 0 ]] ; then echo -e "test failed" exit $rc fi exit 0
4. Save the file.
Test the commit
Now we can add any change and do commit. Then the script runs to check if my code is fine or not.
There are many use-cases such as:
- comment validation, etc.
Each project may have different requirements so we can simply modify the file to meet our requirements.
If you prefer PowerShell, then you can simply use it. One easy way to do it is to create ps1 file which contains your PowerShell script, and call it from pre-commit.
#!/bin/sh echo "# start some PS script" exec powershell.exe -NoProfile -ExecutionPolicy Bypass -file "the.ps1" exit
There is great article about this. Automation of your GIT repository via GIT hooks and PowerShell scripts
Top comments (2)
Nice, what happened when u got a big Solution with 200 or more projects. Every commit will be a loooong waiting commit.
I use the hook to format the files.
That's so true. In case of big working tree, we may use sparse check out and partial clone