使用github同步OSX点文件

时间:2017-08-03 04:18:52

标签: git macos github

我想在GitHub存储库的OSX主文件夹中保留某些点文件的副本。但是,我不想包含文件和文件夹,例如Documents /,Downloads /等......实现这一目标的最佳方法是什么?

最好忽略.gitignore中所有文件/文件夹(当前dir)仅将所需文件/文件列表列入白名单:

/* 

!.vimrc, 
!.bash_profile, etc

或相反:

Documents/
Downloads/
Pictures/

或其他方式?

谢谢

2 个答案:

答案 0 :(得分:1)

请参阅Managing Dotfiles with GitEdward Thomson(目前是Microsoft,以前是GitHub):
你可以创建一个git repo elswhere

git clone --separate-git-dir=.dotfiles.git ethomson.visualstudio.com:DefaultCollection/personal/_git/dotfiles .
rm .git
echo '*' > .dotfiles.git/info/exclude

(使用你想要的远程仓库:Edward使用TFS Git)

然后使用别名添加您的dotfiles:

alias dotfiles="git --git-dir=$HOME/.dotfiles.git"

你可以这样做:

dotfiles add .zshrc
dotfiles commit 
dotfiles push

答案 1 :(得分:1)

这有些陈旧,忘记了这篇文章。无论如何,我现在已经设置了我的dotfiles,并以一种非常简单实用的方式与github同步。关于@theoden在评论中提出的建议,这些是我采取的步骤......

mkdir ~/.dotfiles

并在github上移动我想要的所有config / dotfiles,例如.bashrs,.bash_aliases,vimrc等......

mv file file2 file3 ~/.dotfiles

然后创建这些文件到主目录的符号链接...

ln -sf ~/.dotfilles/file ~

-f标志强制覆盖现有文件(如果存在)。在〜/ .dotfiles中创建一个git repo并使用它来推送到github ...

git init

我还添加了* .swp,* .swo到.git / info / exclude来忽略交换文件。 然后我写了一个小脚本来自动化符号链接的过程,以防我需要再次设置我的系统,这样我就可以从github克隆repo并运行脚本来创建所有必要的符号链接以使系统工作。这是脚本......

#!/bin/bash
#creates dotfile symlinks in home

ln -sf ~/.dotfiles/.bash* ~
ln -sf ~/.dotfiles/.gitconfig ~
ln -sf ~/.dotfiles/.vimrc ~
ln -sf ~/.dotfiles/.config/neofetch/config.conf ~/.config/neofetch/
rm -f ~/.bash*_bak
rm -f ~/.bash*-bak

对我来说效果很好。希望这可以帮助别人。