Initial Git Setup (only do once)

Configuration settings:

$> git config --global user.name "John Doe"
$> git config --global user.email johndoe@nmr.mgh.harvard.edu

Checkout out the main branch:

$> git clone /space/freesurfer/repo/freesurfer

$> cvs checkout dev

Checkout the stable branch:

$> git clone -b stable6 /space/freesurfer/repo/freesurfer

$> cvs checkout -r stable6 dev

Daily Workflow

Commit a modified source code file:

cvs

cvs commit -m "Added new capabilities." <file_name>

git

git commit -m "Added new capabilities." <file_name>

git push .

Commit a modified data file:

cvs

cvs commit <file_name>

git

git annex unlock <file_name>

git commit <file_name>

git annex copy --to origin <file_name>

Remove data file:

cvs

rm <file_name>

cvs rm <file_name>

cvs commit -m "Removing <file_name>" <file_name>

git

git rm <file_name>

git commit -m "Removing <file_name>" <file_name>

Undo 1 commit (before push):

git

git reset --soft HEAD~1

Undo 2 commits:

git

git reset --soft HEAD~2