使用Git和GitHub上管理您的点文件

如果您使用OS X或Linux在桌面/服务器,你可能会在您已经点文件中配置了大量的自己的设置,配置或主题的一个点。对于不知情,点文件都是以点开始的,或句号字符在你的家目录中的文件。这表明对操作系统,它们是隐藏文件,用于设置像工具配置设置VIM,或外壳,例如bash中zsh仅举几。

本教程不会进入配置点文件的细节。相反,我的目标是为您提供一个光介绍的Git版本控制,让你保持你的点文件在一个集中的存储库github.com

有什么意义?

如果你不相信这是值得你花时间把你的点文件到Git版本控制,可以这样考虑:

通过存储您的点文件的Git仓库,你就可以使用他们在任何OS X或Linux计算机与互联网接入。

这意味着,除了争取恢复到已知能正常工作的设置,你应该错误地配置文件的能力,你也可以在你自己定制的环境中工作。在几乎任何工作站或服务器,你是一个简单git clone远离你自定义的熟悉。更多关于git clone后......现在,我们将开始一个例子。

一个基本的.VIMRC

以下是文件的,我们将管理与类型的例子git。其实,这是我自己的删节版.vimrc。完整版可以认为我的公开Github上

set nocompatible          " get rid of Vi compatibility mode. SET FIRST!
    filetype plugin indent on " filetype detection[ON] plugin[ON] indent[ON]
    set t_Co=256              " enable 256-color mode.
    syntax enable             " enable syntax highlighting (previously syntax on).
    colorscheme desert        " set colorscheme
    set number                " show line numbers
    set laststatus=2          " last window always has a statusline
    filetype indent on        " activates indenting for files
    set nohlsearch            " Don't continue to highlight searched phrases.
    set incsearch             " But do highlight as you type your search.
    set ignorecase            " Make searches case-insensitive.
    set ruler                 " Always show info along bottom.
    set autoindent            " auto-indent
    set tabstop=4             " tab spacing
    set softtabstop=4         " unify
    set shiftwidth=4          " indent/outdent by 4 columns
    set shiftround            " always indent/outdent to the nearest tabstop
    set expandtab             " use spaces instead of tabs
    set smarttab              " use tabs at the start of a line, spaces elsewhere
    set nowrap                " don't wrap text

如果你没有自己.vimrc在你的home目录,欢迎您使用我的。这是故意最小的,因为它的工作原理独立的(你不需要做任何事情比把它放到你的home目录为它工作等)。这就是说,我们要在这里做的事情有点不同,所以要注意(如果你没有的话)。

组织,机构,组织

典型的位置点文件上的OS X或Linux的机器会在用户的主目录,如/home/smalleycreative/dotfiles/vimrc。我们不是典型的,虽然,我们是什么?我们正在努力成为狡猾。

首先,我们将投入所有的点文件到一个文件夹,名为点文件,像这样:/家庭/ smalleycreative /点文件/ vimrc里。然后,我们将简单地从我们的主目录符号链接到他们。像节目的vimbash的符号链接,这些都是透明的。至于这些节目而言,我们点文件仍然会出现在我们的家目录的顶级存在,即使他们将在被藏~/dotfiles目录。

如果你对你的OS X或Linux工作站,现在,你可以开始通过创建~/dotfiles中运行以下命令你的home目录目录:

mkdir ~/dotfiles

请将您.vimrc~/dotfiles(和/或要管理使用Git的任何其他点文件)。为简单起见,我把从文件名 ​​点(.vimrc变得vimrc)。我只是在前面加上了点,当我创建我的符号链接vimrc在我的主目录。重要的是要记住的是,我们还没有使用Git的所有呢。我们正准备通过组织我们点文件到一个文件夹中。例如,复制现有的.vimrc,运行以下命令:

mv ~/.vimrc ~/dotfiles/vimrc

一旦我们有一堆点文件的这个目录中,目录列表可能会看很多像这样的:

ls ~/dotfiles
vimrc
zshrc
bashrc

安装脚本

既然我们要便携性(用我们的文件在任何机器上使用互联网的能力),我们将需要一个安装脚本。这个脚本去我们的~/dotfiles目录。这里是我的(完整版可以认为我的公共Github上):

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#!/bin/bash
############################
# .make.sh
# This script creates symlinks from the home directory to any desired dotfiles in ~/dotfiles
############################

########## Variables

dir=~/dotfiles                    # dotfiles directory
olddir=~/dotfiles_old             # old dotfiles backup directory
files="bashrc vimrc vim zshrc oh-my-zsh"    # list of files/folders to symlink in homedir

##########

# create dotfiles_old in homedir
echo "Creating $olddir for backup of any existing dotfiles in ~"
mkdir -p $olddir
echo "...done"

# change to the dotfiles directory
echo "Changing to the $dir directory"
cd $dir
echo "...done"

# move any existing dotfiles in homedir to dotfiles_old directory, then create symlinks 
for file in $files; do
    echo "Moving any existing dotfiles from ~ to $olddir"
    mv ~/.$file ~/dotfiles_old/
    echo "Creating symlink to $file in home directory."
    ln -s $dir/$file ~/.$file
done

在上面的脚本中的注释部分解释。首先,该脚本清除可能存在于我们的主目录的任何旧符号链接,并将它们放入一个文件夹,名为dotfiles_old。然后,它通过在我们的任何文件遍历~/dotfiles目录,并从我们的主目录,将这些文件创建符号链接。它处理这些命名符号链接,并在前面加上一个点,以他们的文件名 ​​。

如果我们已经有了这个脚本在我们的点文件目录中,我们有我们的点文件在那里,我们已经准备好开始使用Git来管理这些文件。

GITTING入门GITHUB的(GIT吗?)

在继续之前,我们将要创建一个GitHub的账户。GitHub上使我们能够建立一个免费的公共Git仓库,从任何计算机访问Internet访问。他们也有一个非常良好的书面帮助部分。你会得到很好的建议来阅读,并按照有关特定操作系统的说明:

严重 - 阅读或者至少掠过该文档。一旦你设置你的帐户,你是舒适的基础,回到这里,我们将继续要求获得存储在GitHub.com你的公共Git仓库你点文件的步骤。

创建我们本地的GIT回购

在我们的工作站,我们要初始化一个新的Git回购。为了使我们的~/dotfiles目录的Git回购,我们简单地改变它,并运行git init命令:

cd ~/dotfiles
git init

然后,我们开始使用跟踪,我们希望我们的回购协议的一部分的任何文件git的增加对他们的命令:

git add makesymlinks.sh
git add vimrc

最后,一​​旦我们很高兴与我们的文件的状态,我们可以承诺他们。

想想提交的项目-code,文件,一切的快照 - 在特定时间点。更准确的说,在你第一次提交,以后每次提交,是你改变只是一个快照。对于代码文件,这意味着只需要代码,改变了线路的快照。对于一切如音乐或图片文件,这样可以节省文件的新副本。

git commit -m 'My first Git commit of my dotfiles'

有什么重要的是要认识到的是,这是提交本地-我们还没有上传_任何东西_到GitHub上。事实上,我们不能这样做,直到我们告诉我们的本地资源库_,其中_公共库GitHub的实际驻留。要做到这一点,我们使用git的远程添加原产地,像这样:

git remote add origin git@github.com:mygithubusername/dotfiles.git

最后,我们可以推动我们改变GitHub上:

git push origin master

跟踪更新我们的GIT回购

如果我们决定更新我们的vimrc,我们将希望确保这些变化得到跟踪上GitHub.com,究竟什么是过程?首先,添加文件:

git add vimrc

然后,在本地提交,并编写提交信息:

git commit -m 'Changed vim colorscheme!'

然后,推到GitHub上:

git push origin master

克隆我们的点文件到另一台机器

最后,我们要走到一个地步,我们希望用我们的定制点文件在另一台服务器或工作站上。也就是说,毕竟使用Git来管理我们的点文件的主要优点之一。要做到这一点,它的简单,只要运行我们的主目录下面的命令:

git clone git://github.com/<mygithubusername>/dotfiles.git

一旦库已克隆到我们的主目录,只需更改为点文件的目录,使makesymlinks.sh脚本可执行文件,并运行该脚本,如下所示:

cd ~/dotfiles
chmod +x makesymlinks.sh
./makesymlinks.sh

警告:如果你正在运行的Debian Linux的,这将极有可能安装zsh您的系统上,如果尚未安装。这是我加入到我的脚本来自动东西尽可能的功能。如果由于某种原因,你不希望zsh在您的计算机上安装(例如,你是别人的服务器上),删除install_zsh从线makesymlinks.sh。这将导致它来建立你所有的点文件,而不试图安装zsh

就是这样!如果设置不生效向右走,我们只能注销,并在(这将重新源我们点文件),然后重新登录。

更新本地的GIT回购

解释这一点的最好方法是使用一个场景。说我们已经创建了工作站(机器A)上的存储库,我们已经把我们的改变GitHub上,那么我们已经克隆了这些改变到我们的服务器(计算机B)。然后,我们回去到我们的工作站(计算机A),让更多的变化,并把它们推到GitHub上。我们如何获得这些变化到我们的服务器(计算机B)?要做到这一点,我们使用的git拉命令:

git pull origin master

运行此命令后,机器B将电流被推到GitHub上,从机A.它毫不夸张的任何变化任何更新,从GitHub的回购。

版本说明

无论你是想缠斗一个大集合的自定义点文件,或者你刚刚起步,你是不知道从哪里开始,我希望这是一个内容丰富的介绍,通过Git的功率管理您的配置设置。