跨多台计算机管理用户配置文件

Pet*_*ter 36 linux git version-control configuration

我经常在多台电脑上工作.我有不同的配置文件,例如.bashrc,.gitconfig,.irbrc,.vimrc和配置文件夹,例如,.vim/包含有价值的定制.有时我希望不同计算机之间的配置有很小的变化.

我想使用版本控制来管理这些不同的文件.

  • 其他人使用版本控制来管理他们的配置文件吗?
  • 有哪些提示可能会使这更容易?
  • 什么是处理计算机之间变化的最优雅方式?
  • 我很舒服git; 还有其他建议吗?

Chr*_*ard 17

我保留了~/config/一个bzr存储库的文件夹.我在各种计算机之间推/拉存储库以进行同步.我有一个安装脚本,我用它来创建符号链接到我的主目录:

#! /bin/sh
# link all files to the home directory, asking about overwrites
cd `dirname $0`
SCRIPT_DIR=`pwd`
SCRIPT_NAME=`basename $0`
FILES=`bzr ls --versioned --non-recursive`

cd $HOME
for FILE in $FILES; do
    ln --symbolic --interactive $SCRIPT_DIR/$FILE
done
rm $TARGET_DIR/$SCRIPT_NAME
Run Code Online (Sandbox Code Playgroud)

如果你想使用git而不是bzr,你可以使用:

FILES=`git ls-tree --name-only HEAD`
Run Code Online (Sandbox Code Playgroud)

(我不得不这个问题)

编辑:我实际上不再这样做了,现在我在github上有一个dotfiles repo,有一个别人写的漂亮的rake安装脚本.


Pet*_*ter 14

目前,我使用克隆的git repo.为了简单起见,唯一需要在不同机器之间变化的文件是.bashrc.如果只有一个版本的文件在不同的机器上响应不同,那就太好了.因此,在我的.bashrc:

if [ $(hostname) == 'host1' ]; then
     # things to do differently on host1.
elif [ $(hostname) == 'host2' ]; then
     # things to do differently on host2.
fi
Run Code Online (Sandbox Code Playgroud)

这显然有一些限制(例如需要不同的技术.vimrc或需要自定义的其他配置文件),但它工作得相当好.

  • 您可以在每台计算机上安装.bashrc.local文件,并且可以通过常见的.bashrc文件获取.bashrc.local..bashrc.local将具有特定于该机器的自定义(如颜色). (3认同)