问题标签 [dotfiles]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
git - 如何将子模块与 git 管理的点文件一起使用?
我使用 git 存储库来管理我的 dotfiles,而且我很难让子模块正常工作(我的大部分 .vim 都有很多外部插件)
我有一个别名 cgit 要做(不确定它是否相关)别名 cgit='GIT_DIR=/home/myuser/.config-git GIT_WORK_TREE=/home/myuser/。混蛋'"
因此,我可以使用 cgit pull 拉取存储库,但我无法获取子模块来签出/更新:
我已经尝试删除该特定目录并再次尝试,但它只是炸弹。我的 .gitmodules 没有 /home/myuser/。而且我的 .config-git/config 也没有对我的主目录的任何引用,所以我很茫然。如果有帮助,我的 git 版本是 1.7.4.1
谢谢!
更新
似乎第一件事是一个奇怪的错误,其中 git submodule 不接受环境变量(尽管其他 git 命令是),但它需要传递命令行 arg。现在,克隆工作了,它只是抱怨(我手动修复了 ack 配置)
如果我查看 ~/.config-git/modules/.vim/ack/config,我会看到:
但是如果我'ls'那个工作树,它似乎就在那里。如果我删除所有 ../ ,然后再次尝试 git 它似乎可以工作
linux - 如何处理本地 dotfile 存储库?
和其他许多人一样,我希望拥有一个包含我的配置文件的 git 存储库,并将其备份上传到托管站点。我的问题是如何处理本地仓库的点文件。
假设我在 dotfiles 存储库中有我的 zshrc/bashrc。我可以将 'source /path/to/local/repo/zshrc' 行放到我的 ~/.zshrc 文件中,一切都很好。vimrc 也一样。
但是那些不支持这样命令的点文件呢?我是否应该在 ~/.conffile 和 /pathtolocalrepo/conffile 中具有相同的内容,并且当我对其中一个文件进行更改时会更新另一个文件?还是有更聪明的方法?
常见的做法是什么?
这个本地存储库通常位于哪里(在 Linux 上)?我不认为主文件夹是放置它的正确位置(其他用户也应该可以使用配置文件),但是哪个位置最适合呢?
提前致谢。
git - 部分分支或部分合并或其他方式来帮助我同步点文件?
我不知道如何使我的要求在标题中简短,如果没有意义,对不起。我将在这里解释:
许多人将他们的 dotfiles 放在 bitbucket 或 github 上,以方便以后的安装或配置,在不同的 pc 上同步。我也做了同样的事情,但是我想做一些特别的事情,我不确定 mecurial/git 有什么帮助。
是)我有的:
我有 3 台机器,比如 Home、Office 和 Client,都是 linux 操作系统(可能是不同的发行版)。为了使示例简单,假设我只想将一个文件.zshrc
放入 repo。问题是,三个操作系统具有不同的系统变量(或其他设置)。例如
- Office 已安装 JBOSS,然后
.zshrc
我需要导出 JBOSS_HOME var。 - 客户端安装了 Oracle,然后导出不同的变量集。
- Office 必须导出 HTTP_PROXY,但 HOME 不需要,客户端也需要它,但代理值不同等。
现在我所做的是,我将那些特定于机器的设置(主要是导出、别名语句)提取到另一个文件中,比如myVar.sh
. 并在.zshrc
.
所以 3 台机器有共同的部分(相同.zshrc
)和不同的部分(myVar.sh
)。
我想要的是:
在任何机器上,如果我发现一些不错的设置,我会更改
.zshrc
文件(公共部分)并推送。更改应该很容易同步到其他机器(例如,通过拉取)如果我更改了
myVar.sh
HOME 上的(不同部分)并推送,myVar.sh
如果我在 Office 机器上拉动,它不应该影响 Office。
我在做什么:
现在我在 bitBucket 上有一个 Repo 和三个分支(H、O、C)。在 Home PC 上,我只玩 Home 分支。办公室,客户也是如此。
问题是,如果我在一台电脑上更改了通用部分,则更改在其自己的分支中,与其他两台同步有点困难。因为我永远不会合并这些分支。
我还考虑为不同的电脑创建不同的目录。例如
并编写 shell 脚本,例如检查 $HOST 以决定写入myVar.sh
哪个目录。但我怀疑这是否是实现我目标的最佳方式。当我查看我的 dotfiles 目录时,我看到了所有 3 个设置。我应该小心并输入正确的读取文件。
在现实世界中,公共部分包含的内容远不止 .zhsrc (tmux,vimrc,xdefault..),不同部分也是如此。
我不知道我们能否以某种方式制作部分分支或在存储库上进行部分合并......
我用 hg 比 git 多,如果 hg 能解决我更喜欢 hg,如果不能,git 也可以。除了克隆、推送、拉取、向上、合并、ci 之外,我没有太多的 git 经验。
现在,我该怎么办?
并且,感谢您阅读本文...
编辑更多关于不同部分
我会感谢大家给我答案。正如我上面所说,我的真机中的不同部分并不像myVar.sh
. 例如,我将我的公司笔记本电脑(Office)带到不同的客户端(大约有 6 个客户端,并非所有客户端都为我们提供 PC,这很好,因为我可以在任何地方使用 Linux),并为每个客户端配置打印机。我也会把这些配置放在 Repo 中。因为如果有一天我必须刷新我的系统,或者硬盘出现故障,我可以很容易地设置这些打印机。其他属于不同部分但我不能简单地像“source xxx”这样的东西
跟踪点的 Xorg.conf
.hgrc 文件(因为在公司我们有自己的 repo、uid、pwd、proxy..)
一些预配置的 systemd 模块,基本上是 .conf 文件。但特定于机器,例如 radeon.conf 仅适用于我的家用笔记本电脑。客户端 pc 根本没有安装 systemd。
这就是为什么我考虑为 PC 设置不同的目录。
正如我现在所说,我有 3 个分支方式,并且myConf
在这个目录中有一个目录getConf.sh
,用于将点文件、不同的 confs 等复制到myConf
. 事实上,它getConf.sh
也属于不同的部分,因为所有电脑的脚本都不相同。
因此,我认为if-else/switch
thensource
在这种情况下可能不起作用。
昨天我刚拿了.zshrc,并尝试使示例简单。如果误导了各位,请见谅。
git - 具有机器特定变更集的点文件的版本控制
我将点文件存储在 git repo 中,但是我确实有不同的本地更改集.gitconfig
(受版本控制) - 它可能是不同的环境(autocrlf true)或不同的用户名。
现在每次我检查我去的回购时:
这对我来说似乎不是最佳实践。我应该如何在不同的机器上进行不同的本地更改集?什么是最干净和最明确的方式?还是我什至一开始就解决了错误的问题?
vim - 什么是 .un~ 文件,或者为什么终端中的 Vim 会生成 .un~ 文件?
我注意到我有一些以 . 结尾的点文件.un~
,例如我有一个.vividchalk.vim.un~
,但我不确定它来自哪里。似乎它们是我在终端中使用 Vim 时创建的。这些文件是什么?当我关闭我正在编辑的文件时,可以让它们自行删除吗?
node.js - 是否有 .mocha 文件可以在其中指定默认值,例如 --no-colors?
我想为 mocha 设置一些默认值,而不必每次都键入它们。mocha 是否在任何地方寻找配置文件/点文件,就像 jshint 寻找.jshintrc
和 npm 寻找的那样package.json
?
chef-infra - 点文件应该放在厨师食谱集合中的什么位置?
我们正在慢慢地将我们的基础设施转移到 chef 上,并在此过程中建立一系列食谱。
我不确定的一件事是节点/角色/用户特定的点文件应该去哪里。
例如,我们可以使用 rbenv 食谱为多个用户安装 rbenv,
用户 A 可能不需要 rdoc 文档,因此需要自定义.gemrc
文件。
这应该去哪里?
我们可以将文件内容放在节点/角色特定的 JSON 文件中,或者放在数据包中,但这感觉不对。
有没有办法以一种不是针对一般食谱而是针对特定节点/用户的方式包含实际文件?
github - 如何使用 Github 管理 dotfiles?
由于没有自动化,我将我的点文件存储在 github 中,非常痛苦。我必须自己更新它。
有没有办法可以自动安装/更新/同步点文件?我的意思是在新服务器中,我下载点文件并执行install
脚本以将点文件复制到本地。一段时间后,我可以执行一个updateToRemote
脚本来将本地更改推送到远程仓库,在另一台服务器上,我可以执行一个updateToLocal
脚本来将远程更改拉到本地。
类似的东西。
macos - 点文件错误 | /Users/marif/.aliases:79:错误选项:-t
我对 OSX 还很陌生,但一切都差不多安定下来了,我之前配置了 Z 和 ZSH,最近从https://github.com/paulirish/dotfiles了解了 paulirish dot 文件并安装了它。
刷新 .bash_profile 或 .bashrc 时看到以下输出
我不知道这里出了什么问题,如果有人指出我在我的个人资料中持续存在问题或其他问题,将会有所帮助。
dotfiles - 如何使用 unison 仅同步点文件和点文件夹?
我只想同步主文件夹中以点开头的文件和文件夹。
更具体地说,我只想同步以下列出的文件和文件夹:
我试过的 Unison 命令行:
给出错误:
这是一个简化的示例,使用 rsync 代替是合理的,但我想使用 unison,因为在我的实际用例中我需要双向同步。