Version Control with Git
- Version control is like an unlimited ‘undo’.
- Version control also allows many people to work in parallel.
git config with the
--global option to
configure a user name, email address, editor, and other preferences once
git init initializes a repository.
- Git stores all of its repository data in the
git status shows the status of a repository.
- Files can be stored in a project’s working directory (which users
see), the staging area (where the next commit is being built up) and the
local repository (where commits are permanently recorded).
git add puts files in the staging area.
git commit saves the staged content as a new commit in
the local repository.
- Write a commit message that accurately describes your changes.
git diff displays differences between commits.
git checkout recovers old versions of files.
.gitignore file tells Git what files to
- A local Git repository can be connected to one or more remote
- Use the SSH protocol to connect to remote repositories.
git push copies changes from a local repository to a
git pull copies changes from a remote repository to a
git clone copies a remote repository to create a local
repository with a remote called
origin automatically set
- Conflicts occur when two or more people change the same lines of the
- The version control system does not allow people to overwrite each
other’s changes blindly, but highlights conflicts so that they can be
- Open scientific work is more useful and more highly cited than
LICENSE.txt file is often used in a repository to indicate
how the contents of the repo may be used by others.
- People who incorporate General Public License (GPL’d) software into
their own software must make their software also open under the GPL
license; most other open licenses do not require this.
- The Creative Commons family of licenses allow people to mix and
match requirements and restrictions on attribution, creation of
derivative works, further sharing, and commercialization.
- People who are not lawyers should not try to write licenses from
- Add a CITATION file to a repository to explain how you want your
- Projects can be hosted on university servers, on personal domains,
or on a public hosting service.
- Rules regarding intellectual property and storage of sensitive
information apply no matter where code and data are hosted.
- Using RStudio’s Git integration allows you to version control a
project over time.