[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-7971":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":16,"stars7d":17,"stars30d":18,"stars90d":16,"forks30d":16,"starsTrendScore":19,"compositeScore":20,"rankGlobal":10,"rankLanguage":10,"license":21,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":22,"hasPages":22,"topics":24,"createdAt":10,"pushedAt":10,"updatedAt":25,"readmeContent":26,"aiSummary":27,"trendingCount":16,"starSnapshotCount":16,"syncStatus":17,"lastSyncTime":28,"discoverSource":29},7971,"homesick","technicalpickles\u002Fhomesick","technicalpickles","Your home directory is your castle. Don't leave your dotfiles behind.","",null,"Ruby",2447,127,28,11,0,2,4,1,28.32,"MIT License",false,"master",[],"2026-06-12 02:01:47","# homesick\n\n[![Gem Version](https:\u002F\u002Fbadge.fury.io\u002Frb\u002Fhomesick.svg)](http:\u002F\u002Fbadge.fury.io\u002Frb\u002Fhomesick)\n[![CI](https:\u002F\u002Fgithub.com\u002Ftechnicalpickles\u002Fhomesick\u002Factions\u002Fworkflows\u002Fci.yml\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002Ftechnicalpickles\u002Fhomesick\u002Factions\u002Fworkflows\u002Fci.yml)\n\nYour home directory is your castle. Don't leave your dotfiles behind.\n\nHomesick is sorta like [rip](http:\u002F\u002Fgithub.com\u002Fdefunkt\u002Frip), but for dotfiles. It uses git to clone a repository containing dotfiles, and saves them in `~\u002F.homesick`. It then allows you to symlink all the dotfiles into place with a single command.\n\nWe call a repository that is compatible with homesick to be a 'castle'. To act as a castle, a repository must be organized like so:\n\n* Contains a 'home' directory\n* 'home' contains any number of files and directories that begin with '.'\n\nTo get started, install homesick first:\n\n    gem install homesick\n\nIf you're starting from scratch and don't have a castle yet, generate one:\n\n    homesick generate ~\u002F.homesick\u002Frepos\u002Fmy-dotfiles\n\nThis creates a new git repository with a `home\u002F` directory ready for your dotfiles. If you have a `github.user` set in your git config, it will also add a GitHub remote automatically. You can then track files into it:\n\n    homesick track ~\u002F.vimrc my-dotfiles\n\nOtherwise, if you already have a castle hosted somewhere, clone it:\n\nNext, you use the homesick command to clone a castle:\n\n    homesick clone git:\u002F\u002Fgithub.com\u002Ftechnicalpickles\u002Fpickled-vim.git\n\nAlternatively, if it's on github, there's a slightly shorter way:\n\n    homesick clone technicalpickles\u002Fpickled-vim\n\nWith the castle cloned, you can now link its contents into your home dir:\n\n    homesick link pickled-vim\n\nYou can remove symlinks anytime when you don't need them anymore\n\n    homesick unlink pickled-vim\n\nIf you need to add further configuration steps you can add these in a file called '.homesickrc' in the root of a castle. Once you've cloned a castle with a .homesickrc run the configuration with:\n\n    homesick rc CASTLE\n\nThe contents of the .homesickrc file must be valid Ruby code as the file will be executed with Ruby's eval construct. The .homesickrc is also passed the current homesick object during its execution and this is available within the .homesickrc file as the 'self' variable. As the rc operation can be destructive the command normally asks for confirmation before proceeding. You can bypass this by passing the '--force' option, for example `homesick rc --force CASTLE`.\n\nIf you're not sure what castles you have around, you can easily list them:\n\n    homesick list\n\nTo pull your castle (or all castles):\n\n    homesick pull --all|CASTLE\n\nTo commit your castle's changes:\n\n    homesick commit CASTLE\n\nTo push your castle:\n\n    homesick push CASTLE\n\nTo open a terminal in the root of a castle:\n\n    homesick cd CASTLE\n\nTo open your default editor in the root of a castle (the $EDITOR environment variable must be set):\n\n    homesick open CASTLE\n\nTo execute a shell command inside the root directory of a given castle:\n\n    homesick exec CASTLE COMMAND\n\nTo execute a shell command inside the root directory of every cloned castle:\n\n    homesick exec_all COMMAND\n\nNot sure what else homesick has up its sleeve? There's always the built in help:\n\n    homesick help\n\nIf you ever want to see what version of homesick you have type:\n\n    homesick version|-v|--version\n\n## .homesick_subdir\n\n`homesick link` basically makes symlink to only first depth in `castle\u002Fhome`. If you want to link nested files\u002Fdirectories, please use .homesick_subdir.\n\nFor example, when you have castle like this:\n\n    castle\u002Fhome\n    `-- .config\n        `-- fooapp\n            |-- config1\n            |-- config2\n            `-- config3\n\nand have home like this:\n\n    $ tree -a\n    ~\n    |-- .config\n    |   `-- barapp\n    |         |-- config1\n    |         |-- config2\n    |         `-- config3\n    `-- .emacs.d\n        |-- elisp\n        `-- inits\n\nYou may want to symlink only to `castle\u002Fhome\u002F.config\u002Ffooapp` instead of `castle\u002Fhome\u002F.config` because you already have `~\u002F.config\u002Fbarapp`. In this case, you can use .homesick_subdir. Please write \"directories you want to look up sub directories (instead of just first depth)\" in this file.\n\ncastle\u002F.homesick_subdir\n\n    .config\n\nand run `homesick link CASTLE`. The result is:\n\n    ~\n    |-- .config\n    |   |-- barapp\n    |   |     |-- config1\n    |   |     |-- config2\n    |   |     `-- config3\n    |   `-- fooapp        -> castle\u002Fhome\u002F.config\u002Ffooapp\n    `-- .emacs.d\n        |-- elisp\n        `-- inits\n\nOr `homesick track NESTED_FILE CASTLE` adds a line automatically. For example:\n\n    homesick track .emacs.d\u002Felisp castle\n\ncastle\u002F.homesick_subdir\n\n    .config\n\t.emacs.d\n\nhome directory\n\n    ~\n    |-- .config\n    |   |-- barapp\n    |   |     |-- config1\n    |   |     |-- config2\n    |   |     `-- config3\n    |   `-- fooapp        -> castle\u002Fhome\u002F.config\u002Ffooapp\n    `-- .emacs.d\n        |-- elisp         -> castle\u002Fhome\u002F.emacs.d\u002Felisp\n        `-- inits\n\nand castle\n\n    castle\u002Fhome\n    |-- .config\n    |   `-- fooapp\n    |       |-- config1\n    |       |-- config2\n    |      `-- config3\n    `-- .emacs.d\n        `-- elisp\n\n## Supported Ruby Versions\n\nHomesick is tested on the following Ruby versions:\n\n* 3.2\n* 3.3\n* 3.4\n\n## Note on Patches\u002FPull Requests\n\n* Fork the project.\n* Make your feature addition or bug fix.\n* Add tests for it. This is important so it doesn't get broken unintentionally in a future version.\n* Commit, but do not touch the rakefile, version, or history. (If you want your own version, that is fine — just bump the version in a separate commit that can be ignored when merging.)\n* Open a pull request. Bonus points for topic branches.\n\n## Need homesick without the ruby dependency?\n\nCheck out [homeshick](https:\u002F\u002Fgithub.com\u002Fandsens\u002Fhomeshick).\n\n## Copyright\n\nCopyright (c) 2010 Joshua Nichols. See LICENSE for details.\n","Homesick 是一个用于管理和同步个人配置文件（dotfiles）的工具。它利用 Git 来克隆包含 dotfiles 的仓库，并将其保存在 `~\u002F.homesick` 目录下，然后通过简单的命令将这些配置文件链接到用户主目录中。项目采用 Ruby 语言编写，支持通过创建或克隆“城堡”（即兼容 homesick 的仓库）来管理用户的个性化设置。适合开发者在多台机器间保持一致的工作环境，或者希望轻松备份和恢复个人配置文件的场景使用。","2026-06-11 03:15:26","top_language"]