I try to use git annex, but I frequently don't know if I'm doing things correctly, and my files are getting messed up.
An expert guide to the full workflow would go a long way toward user-friendliness for me. The walkthrough currently has guides to a number discrete items in the workflow, but it doesn't give me a clear sense of the process.
I'm always confused about when I'm supposed to be using pure git commands and when they should be git annex commands, when to commit, add, and sync --content, and when each of these is redundant.
If possible, most helpful would be a guide to how you imagine the workflow from the beginning and including each step of the process, in the order you'd do it.
- I want to start keeping track of some files I have in a directory
- I want to copy them to a second computer.
- From a third place, I want to get them from the second computer.
- I change the files on one computer, and I want to make sure the changes get synced to the others.
What are the commands you'd run at each step?
Many thanks.
looking at the page title here, i'm tempted to simply point you to Workflow guide and therefore the new workflow page, but that may not answer your question directly. so let's see...
the the examples below, i'll assume you are familiar with the commandline and show examples using git and git-annex commands, since you mentioned that. but a lot of those things can be done with the web assistant, if not everything. but i am not very familiar with it, so you'll excuse my geekiness...
I want to start keeping track of some files I have in a directory
Note that you could track all files with
git annex add .
orgit annex add *
... regular glob patterns apply.I want to copy them to a second computer.
This is the harder part. Here I'll assume that you have an SSH server on the first computer, which i'll name
firstcomputer
. If that's not your case, you can use the new tor to pair arbitrary machines with the peer to peer network with tor instructions instead of this.On the second computer:
From a third place, I want to get them from the second computer.
Same comments as above apply.
On the third computer:
I change the files on one computer, and I want to make sure the changes get synced to the others.
This can be done manually with git-annex-sync (with the
--content
flag to copy actual content), or automated with the git-annex-assistant or git-annex-watch.