如何使用Github的管理点文件?(How to use Github to manage dotf

2019-09-01 10:30发布

我保存我的github上点文件,有很多痛苦,因为没有自动化的。 我必须更新它自己。

是否有可以自动安装/更新/同步点文件的方法吗? 我的意思是在一个新的服务器,我下载点文件和exec一个install脚本,点文件复制到本地。 过了一段时间,我可以Exec中updateToRemote脚本来推动本地更改到远程回购,以及另一台服务器上,我可以Exec中updateToLocal脚本拉远程切换到本地。

类似的东西。

Answer 1:

的有关点文件的主要来源是dotfiles.github.io

它引用的博客文章喜欢使用Git和Github的管理您的点文件的基础上,一个符号链接方法。

对于初学者来说,我们将将所有我们点文件成一个文件夹,名为点文件,像这样: /home/smalleycreative/dotfiles/vimrc
然后,我们将简单地从我们的主目录下符号链接到他们。


海梅提到了Atlassian的教程“ 来存储您的点文件的最好方法:裸Git仓库 ”

该技术在于在a“侧”的文件夹存储一个Git纯仓库(如$HOME/.cfg$HOME/.myconfig ),使用特制的别名,使得命令被针对该存储库运行,而不是通常的.git/本地文件夹,这将与任何其它的Git存储库干扰周围。
(然后将点文件夹作为一个git回购管理)



Answer 2:

以上答案是优秀的,是我究竟会怎么做对“真正的操作系统”。

我用的cygwin / MSYS因此使用符号链接有时会用一些自己喜欢的软件的“原生”港口问题遇到了一个问题,这个在著名的商业操作系统。

要解决此我只是把文件夹$ HOME直接是一个Git仓库实验。 一些失败后,我发现关键是所有的.gitignore文件以。

所以,我一直在使用了一段时间的设置是通过使$ HOME的存储库,制作的.gitignore文件,并单独添加所需的“点文件”文件创建的。 我还添加了一个备份向上驱动(Z:在这种情况下)上的存储库作为上游只是为了获得自动备份。 如果你的文件夹已经备份,增加上游是一种不必要的并发症。 因此,假设“/z/Backups/Dotfiles.git”是一个预先存在的“裸”库,在MSYS壳,步骤设置事情是:

$ cd $HOME
$ git init
Initialised empty Git repository in $HOME
$ git add .bashrc .emacs .gitconfig # for example
$ git commit -m "Initial import of dotfiles"
[master (root-commit) xxxxxxxx] Initial import for dotfiles
 3 files changed, xxx instertions(+)
 create mode 100644 .bashrc
 create mode 100644 .emacs
 create mode 100644 .gitconfig

# The following two lines just add an "upstream" purely for backup purposes.
$ git remote add origin /z/Backups/Dotfiles.git
$ git push -u origin master
<< snip >>

接下来,我把下列$ HOME /的.gitignore:

# First exclude everything.
*
# then re-include all "dotfiles"
!/.*
# then a bunch of specific excludes as they are more-or-less "cache" data rather than configuration.
/.bash_history
/.dbus-keyrings/
/.emacs.d/
/.gimp-2.8/
/.git/
/.gitk
/.idlerc/
/.lesshst
/.saves/
/.thumbnails/

最后,下面的命令(道歉我没有捕获从这些输出)的.gitignore本身添加到存储库:

$ cd $HOME
$ git add .gitignore
$ git commit -m "Added some rules so git status on the dotfiles is useful."
$ git push

现在,任何“正常”的文件添加到您的家目录由点文件回购被忽略,但任何新的点文件中git的状态,例如显示:

$ cd $HOME
$ touch NewFile.txt
$ git status
On branch master
Your branch is up-to-date with 'origin/master'.

nothing to commit, working directory clean

$ touch .funkychicken
$ git status
On branch master
Your branch is up-to-date with 'origin/master'.

Untracked files:
  (use "git add <file>..." to include in what will be committed)

        .funkychicken

nothing added to commit but untracked files present (use "git add" to track)

到目前为止,这一直运作良好,即使有一些子目录是自己的(无关)的Git仓库。 有时也有“怪癖”与非git的子目录,但至今没有任何问题的。



Answer 3:

嗯,这是三年之后,没有人想出了什么伟大,所以我花了刺这个问题。 它的平台无关,外壳不可知与其他没有依赖关系,那么你必须提供的伯恩兼容外壳(bash中,zsh中,KSH等)。 它适用于苹果机,Linux和Windows:

dotsys

它会自动同步与github上与多台计算机更改您的点文件,与许多其他功能一起。



Answer 4:

我使用的Git仓库(github上)和bash脚本创建符号链接。 但是现在我发现这个工具,它似乎更强大。 检查出来: https://github.com/shanx/python-dotfiles 。



Answer 5:

我发现用普通的Git来管理您的点文件,没必要符号链接一种有趣的方式。 这样一来,你应该能够做到推拉常用方法:

建立

git init --bare $HOME/.myconf
alias config='/usr/bin/git --git-dir=$HOME/.myconf/ --work-tree=$HOME'
config config status.showUntrackedFiles no

在我的〜/ .myconf目录是一个Git的裸库。

用法

通常Git命令然后可以用git的别名,如配置或任何你选择使用。

config status
config add .vimrc
config commit -m "Add vimrc"
config push

优点

  • 无需额外的工具
  • 没有符号链接

更多相关信息

  • 来源: https://news.ycombinator.com/item?id=11071754
  • 文章进一步的相关信息: https://developer.atlassian.com/blog/2016/02/best-way-to-store-dotfiles-git-bare-repo/


Answer 6:

您更新/与之同步您的点文件git push/pull命令(GitHub上充当“中央”资料库)。 当涉及到符号链接点文件我写了一篇关于它的文章。 快来看看吧: 轻松管理您的点文件 。



Answer 7:

其主要思想是有所有你想跟踪在Git和其在主目录符号链接的真正点文件独立的目录(通常称为.dotfiles)。

已经有很多关于这个方法所做的工作,所以我会建议你检查DFM(点文件管理器):

  • 这是我点文件使用DFM的选择(你可以认为这是一个例子): 维森特的点文件
  • Github上正式储存DFM网站


文章来源: How to use Github to manage dotfiles?