Re: Sharing home and etc files with git
- From
- Kelvie Wong <kelvie@ieee.org>
- Date
- Jun 5, 2008, 22:48 UTC
- Message-ID
- <94ccbe710806051548x485aefe8j2ad6b40b74d68747@mail.gmail.com>
- In-Reply-To
- <48484607.5090505@gmail.com>
On 6/5/08, iiijjjiii <iiijjjiii@gmail.com> wrote:
Show 8 quoted lines
> I would like to use git to keep revision histories of my home and etc > directories. I have several computers and I like to keep their environments > similar. I could see git pulls updating .bash_aliases, .bashrc, and various > bash and perl scripts I create in the home directory, and updating /etc > config files. Git pushes would share any recent changes to other computers. > This way no matter which computer I am working on, the environment will be > similar and I can make changes and know they will be copied to the others. >
Completely understandable; also remember that pushing, unlike pulling, does not update the working tree (and you wouldn't want it to).
Show 11 quoted lines
> I haven't figured out a good way to deal with the files that have local > settings in them. Using .gitignore feels a little overkill. Only certain > lines of the files need to be unique. Once they are set, I'd like subsequent > changes to be updated. I could cherry-pick manually but I'd like a more > automated method. I have read about etckeeper, git-home-history and gibak, > but they seem to be designed for backing up and versioning files on one > computer and not for sharing files. > > Has anyone done something similar using git or is another tool more > suitable. >
I'm fairly certain there are tools out there for this, but what I do is I have all of the files that I want to add (such as ~/.${SHELL}rc, ~/.${SHELL}.d/*, and .emacs) into ~/.git-home; then I symlink all of these files/directories into my $HOME (with a short script that's also checked in).
I then throw this entire repo somewhere where all my other machines can pull/push from, and I resolve merges as needed. It works fairly well.
-- Kelvie Wong