I like Stefan's approach because it only exports when an object is changed. That seems pretty great. Since you're asking here, it seems like you're wanting something else.
Here is the script I've used for years to export any object marked as "Modified" from our local on-prem NAV. (I run this in the NAV Development Shell.)
Remove-item -path '\\YOURFILEPATH\GitRepo\NAV' -include *.txt -recurse;
Remove-item -path '\\YOURFILEPATH\GitRepo\AllObjectsExported.txt';
Export-NAVApplicationObject -DatabaseName 'BC' -Path '\\YOURFILEPATH\GitRepo\AllObjectsExported.txt' -DatabaseServer YOURSQLSERVER -ExportTxtSkipUnlicensed -Filter Modified=yes;
Split-NAVApplicationObjectFile -Source '\\YOURFILEPATH\GitRepo\AllObjectsExported.txt' -Destination '\\YOURFILEPATH\GitRepo\NAV\'
This script: (1) removes all .txt files from the GitRepo folder (2) Removes the last file of all exported objects (3) Creates a new file with all modified objects as .txt (4) Splits that 1 file into 1 file per object.
Originally I did not do the full delete of all objects from the Repo, but this means that if you flip an object to Modified = false, then it doesn't reflect that in the repo. This method is not fast or automated--although you could probably automate it if you wished. Again--I think Stefan's approach seems better, but you're clearly looking for an alternative--so hope this helps.