This is an old revision of the document!
Git
git
is a “distributed version control system” (dVCS) or “source control management” (SCM) tool used to track changes, primarily for source code in text files. git has command line and graphical interfaces.
Alternative SCM tools include fossil
, hg
, pijul
. For version controlling (large binary/non-text neuroimaging) data, see datalad or dvc
git
is not github. Github is a Microsoft-owned source forge adding a social network, identity services, and other features not included in the git system (issue tracking, patch/fork management). Other forges include gitlab, sr.ht, codeberg.
For more see
Using
On the command line in terminal/with shell, using git follows the add
,commit
,push
pattern:
git add $file # move changes in $file to "staging" git commit # annotate staged files, commit to history git push # send changes to a server (e.g. github)
By default, git commit
will open Vim to use to write the commit message.
- Push
i
to put vim in insert mode. - write your message.
- push
Esc
to go back to command mode :wq
to write and quit.
Github https push
To push to https
(vs ssh like git@
) repos, you'll need to use a personal authentication token when prompted for a password. See github's documentation
ssh push
git push
can use ssh authentication. You need a key likey in ~/.ssh/id_rsa.pub
. If that doesn't exist, ssh-keygen
can make it (use empty password for convience. hit enter at password prompt to leave blank). See more documentaiton on github