Automated Version Control
- Version control is like an unlimited ‘undo’.
- Version control also allows many people to work in parallel.
Setting Up Git
- Use
git config
with the--global
option to configure a user name, email address, editor, and other preferences once per machine.
Creating a Repository
-
git init
initializes a repository. - Git stores all of its repository data in the
.git
directory.
Tracking Changes
-
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.
Exploring History
-
git diff
displays differences between commits. -
git restore
recovers old versions of files.
Ignoring Things
- The
.gitignore
file tells Git what files to ignore.
Remotes in GitHub
- A local Git repository can be connected to one or more remote repositories.
- Use the SSH protocol to connect to remote repositories.
-
git push
copies changes from a local repository to a remote repository. -
git pull
copies changes from a remote repository to a local repository.
Collaborative Version Control - Centralized
- Git and Github are superpowerful, not just for version control, but as tools for collaborative development
- Do code reviews and be constructive in them!
- Use centralized flow for internal collaborations
Collaborative Version Control - Distributed
- Use distributed flow for external collaborations