{"id":16818311,"url":"https://github.com/igr/homer","last_synced_at":"2025-10-29T22:40:20.018Z","repository":{"id":78714718,"uuid":"100539020","full_name":"igr/homer","owner":"igr","description":"Homer - your home dotfiles manager that works with GitHub","archived":false,"fork":false,"pushed_at":"2022-05-24T14:34:37.000Z","size":35,"stargazers_count":14,"open_issues_count":1,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-25T00:38:10.254Z","etag":null,"topics":["dotfile-manager","dotfiles","dotfiles-manager","shell"],"latest_commit_sha":null,"homepage":"http://oblac.rs/kako-cuvati-dotfiles/","language":"Shell","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/igr.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":"2017-08-16T22:49:51.000Z","updated_at":"2024-10-22T17:53:16.000Z","dependencies_parsed_at":"2023-04-12T10:46:06.058Z","dependency_job_id":null,"html_url":"https://github.com/igr/homer","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/igr%2Fhomer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/igr%2Fhomer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/igr%2Fhomer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/igr%2Fhomer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/igr","download_url":"https://codeload.github.com/igr/homer/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248332968,"owners_count":21086166,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["dotfile-manager","dotfiles","dotfiles-manager","shell"],"created_at":"2024-10-13T10:49:43.151Z","updated_at":"2025-10-29T22:40:14.960Z","avatar_url":"https://github.com/igr.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Homer v1.5.2\n\nYour `$HOME` needs **Homer** :)\n\n**Homer** manages your dotfiles and folders using just `git` and `GitHUb`. No symlinks, no copies.\nWhat makes **Homer** unique is:\n\n+ it works directly in the `$HOME`\n+ it keeps track of added files, ignoring everythig else - no need to worry to ignore folders\n+ _fully_ tracks all added folders - add folder and forget\n+ there is no staging area (like in `git`). **Homer** hides this from user.\n\nIn other words: _pick_ files and folders from your `$HOME` and add them to the **Homer**. Everything else is ignored, which is very convenient when used in `$HOME`. **Homer** treats added files and folders differently:\n\n+ _files_ are simply tracked when they are added. Each individual file must be manually added. Other files are ignored.\n+ _folders_, however, are fully synchronized! There is no need to manually add file(s) once folder is added. **Homer** does all that for you. Of course, you can use `.gitignore` in the folders to simply ignore some files.\n\nThis makes everyday-life much easier!\n\n## Installation :gift:\n\nDownload `homer` to your `$HOME`. Done!\n\n## Usage\n\n### Setup :clapper:\n\nFirst you need to _initialize_ **Homer** and connect to existing GitHub repo by passing `user/repo_name`:\n\n```shell\nhomer init github-user/homer-repo\n```\n\nOn another machine, just _clone_ **Homer** repo from the GitHub:\n\n```shell\nhomer clone github-user/homer-repo\n```\n\nCheck `$HOME/.gitignore` and add some common folders. This is not necessary, but can dramatically speed up the detection of changes.\n\n### Every-day work :sunny:\n\nAnytime you can check the _status_; what is new, changed, deleted or untracked:\n\n```shell\nhomer status\n```\n\n![](gfx/homer-status.png)\n\nStart by _adding_ files and folders. When folder is added, all its files are added as well! Use `.gitgnore` to ignore files. For example:\n\n```shell\nhomer add .zsh\nhomer add bin\n...\n```\n\nIf you already have some folders included in **Homer**, you can simply add all untracked files bellonging to included folders with simple:\n\n```shell\nhomer add\n```\n\nYou only need to add _new_ files. That is different from `git`: **Homer** does not have staging area, so you just need to add new files.\n\nFinally, _put_ all your changes to the repo (this command will also add all untracked files from included folders):\n\n```shell\nhomer put\n```\n\nOn the another computer, _get_ the changes:\n\n```shell\nhomer get\n```\n\n### Reset and Remove :warning:\n\nTo reset some file:\n\n```shell\nhomer reset bin/text.txt\n```\n\nYou can reset all changes with:\n\n```shell\nhomer reset\n```\n\nTo remove single file from the repo:\n\n```shell\nhomer remove \u003cFILE\u003e\n```\n\n### Update :rocket:\n\n**Homer** can check for and download the update, if it exists:\n\n```shell\nhomer update\n```\n\nThis will download a new version of `homer` in your $HOME folder.\n\n## Use with ❤\n\nDo it!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Figr%2Fhomer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Figr%2Fhomer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Figr%2Fhomer/lists"}