{"id":18045436,"url":"https://github.com/lance/cfg","last_synced_at":"2026-04-28T11:05:08.048Z","repository":{"id":66679299,"uuid":"467650240","full_name":"lance/cfg","owner":"lance","description":"How I manage dotfiles and other important $HOME files in git","archived":false,"fork":false,"pushed_at":"2022-03-08T19:35:07.000Z","size":2,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-05T03:41:55.839Z","etag":null,"topics":["dotfiles","git"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lance.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-03-08T19:34:47.000Z","updated_at":"2023-03-03T01:42:43.000Z","dependencies_parsed_at":"2023-04-13T11:03:56.584Z","dependency_job_id":null,"html_url":"https://github.com/lance/cfg","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/lance/cfg","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lance%2Fcfg","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lance%2Fcfg/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lance%2Fcfg/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lance%2Fcfg/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lance","download_url":"https://codeload.github.com/lance/cfg/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lance%2Fcfg/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32377599,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-28T09:24:15.638Z","status":"ssl_error","status_checked_at":"2026-04-28T09:24:15.071Z","response_time":56,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dotfiles","git"],"created_at":"2024-10-30T18:13:14.189Z","updated_at":"2026-04-28T11:05:07.892Z","avatar_url":"https://github.com/lance.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# cfg\nUse this repository to manage your shell, git and other configuration files.\n\nNOTE: If you use it to manage things like your `.ssh` directory, be sure to avoid making the repository public!\n\n## Installing\n- `git clone --bare https://github.com/lance/cfg $HOME/.cfg`\n\nWhen cloned this way, repository is a \"bare\" git repository, meaning that the work tree must be configured in order to be used. Do this using an alias. I like to use `dotfiles` since that's the conceptual purpose of all of this - to manage your dotfiles. Set the alias like this.\n\n```\nalias dotfiles='/usr/bin/git --git-dir=$HOME/.cfg/ --work-tree=$HOME\n```\nasd\nYou'll probably want to add this to your `.zshrc` or other shell initialization script so you don't have to do this every time you mess with your dotfiles.\n\nIf you want the `git` command to ignore your local files that are not already in the repository, you can configure that setting with the following command. This way, you don't have to explicitly add random stuff to your `.gitignore` file.\n\n```\ndotfiles config --local status.showUntrackedFiles no\n```\n\n## Roll Your Own\n\nIf you don't want to start with this repository, and just want to do your own thing, you can do the following.\n\n```\ngit init --bare $HOME/.cfg # create a new bare repository in the ~/.cfg directory\n```\n\nThen create the alias as above, and configure `dotfiles` to show untracked files or not, depending on your preference.\n\n## Configure your remote\n\nWhether you have rolled your own, or you are using a clone of this repo, you'll of course want a remote on github or gitlab or whatever. Create the remote on your github or gitlab account, then add it to your local settings.\n\n```\ndotfiles remote add origin https://github.com/\u003caccount\u003e/cfg\n```\n\nThen you can use your local home directory as you would any other git repo with the `dotfiles` alias. For example, here I am updating the contents of my `.gitignore` file.\n\n```\n❯ pwd\n/Users/lball\n\n~\n\n❯ vi .gitignore\n\n~ took 20s\n❯ dotfiles status\nOn branch main\nYour branch is up to date with 'origin/main'.\n\nChanges not staged for commit:\n  (use \"git add \u003cfile\u003e...\" to update what will be committed)\n  (use \"git restore \u003cfile\u003e...\" to discard changes in working directory)\n\tmodified:   .gitignore\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\n\n~\n❯ dotfiles commit -am \"Update gitignore - add ./bin\"\n[main 5917af68] Update gitignore - add ./bin\n 1 file changed, 3 insertions(+)\n\n~\n❯ dotfiles push\nEnumerating objects: 5, done.\nCounting objects: 100% (5/5), done.\nDelta compression using up to 10 threads\nCompressing objects: 100% (3/3), done.\nWriting objects: 100% (3/3), 735 bytes | 735.00 KiB/s, done.\nTotal 3 (delta 2), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (2/2), completed with 2 local objects.\nTo github.com:lance/.confg.git\n   79c2bfdf..5917af68  main -\u003e main\n\n~\n❯ dotfiles status\nOn branch main\nYour branch is up to date with 'origin/main'.\n\nnothing to commit, working tree clean\n\n~\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flance%2Fcfg","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flance%2Fcfg","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flance%2Fcfg/lists"}