/windotfiles

Primary LanguagePowerShell

Windows configfiles

Configuration files for Windows, used as a bare repository in $env:USERPROFILE.

See https://stegosaurusdormant.com/bare-git-repo/ and https://www.atlassian.com/git/tutorials/dotfiles/ for more info.

Initialize

cd $env:USERPROFILE
git init --bare .dotgit

function dotgit {
    git.exe --git-dir=${env:USERPROFILE}/.cfg --work-tree=${env:USERPROFILE} $args
}

dotgit add .\somefile
dotgit commit -m "A demo file"
dotgit status

Submodules

Some needed commands to update submodules. For more info see https://git-scm.com/docs/git-submodule.

Define the function

function dotgit {
    git.exe --git-dir=${env:USERPROFILE}/.cfg --work-tree=${env:USERPROFILE} $args
}

Initialize all submodules

Initialize and populate them

<<dotfunction>>
dotgit submodules update --init --recursive

Update submodules

Save submodule settinghs to local git repository and to an update from the remote.

<<dotfunction>>
dotgit submodule sync --recursive
dotgit submodule update --remote --rebase --recursive

Checkout correct branch

Do a checkout for the correct branch. If there is no branch specified in .gitmodules, master will be checked out.

<<dotfunction>>
dotgit submodule foreach  --recursive 'git checkout $(git config -f $toplevel/.gitmodules submodule.$name.branch || echo master)'