diff --git a/README.md b/README.md index 0d55e58..b60bbe7 100644 --- a/README.md +++ b/README.md @@ -1,16 +1,49 @@ -``` -git init --bare $HOME/.dotfiles +--- +title: "Dotfiles With Git" +date: 2020-04-29T13:26:01+02:00 +draft: true +tags: + - bash + - git + - dotfiles +--- +# Simple way to manage dotfiles with git +I use a very simple way to manage my dotfiles with git and some bash aliases. +All you have to create a folder for your git repository in your home folder and initiate a bare git repository +```bash +mkdir "$HOME/.dotf +git init --bare $HOME/.dotf ``` +Then create an alias so you don't have to write a long command each time you want to add a file or configure your git repository, don't forget to add that alias to $HOME/.alias +```bash +alias dotf='/usr/bin/git --git-dir=$HOME/.dotf --work-tree=$HOME' ``` -alias dotfiles='/usr/bin/git --git-dir=$HOME/.dotfiles --work-tree=$HOME' +so, that alias is calling git and sets the repository as well as working directory and it can be called from what ever path you currently be in. + +The next thing we need to do is to configure the repository to not show untracked files and only care about the files we specifically want to manage. +```bash +dotf config --local status.showUntrackedFiles no ``` -``` -dotfiles config --local status.showUntrackedFiles no +Now you just use the dotfiles alias for git to add files, commit changes, etc, etc +```bash +dotf add .alias .bashrc +dotf commit -m "Added .alias and .bashrc" ``` +To show the status of the repository +```bash +dotf status ``` -dotfiles add .bashrc -dotfiles commit -m ".bashrc added" + +if you want to add some bash completion to dotf you can just add the following line to your .bashrc +``` +[[ "$(type -t dotf)" == "alias" ]] && [[ "$(type -t __git_complete)" == "function" ]] && __git_complete dotf _git +``` + +If you want you can add a remote repository make sure that it's secure if you manage sensitive information. +```bash +dotf remote add origin @git.domain.tld/dotfiles.git +dotf push ```