dsa dsa dsa dsd a dsadadaddadsadsadsadsa dsa dsa dsd a dsadadaddadsadsadsadsa dsa
Also Version Control Systems or Source Code Management
Manage changes to source code over time
Distributed version control
It's complicated!
Key Concepts: Snapshots
The way git keeps track of your code history
Essentially records what all your files look like at a given point in time
You decide when to take a snapshot, and of what files
Have the ability to go back to visit any snapshot
Your snapshots from later on will stay around, too
Key Concepts: Commit
The act of creating a snapshot
Can be a noun or verb
“I commited code”
“I just made a new commit”
Essentially, a project is made up of a bunch of commits
Commits contain three pieces of information: 1. Information about how the files changed from previously 2. A reference to the commit that came before it
Called the “parent commit” 3. A hash code name
Will look something like: f2d2ec5069fc6776c80b3ad6b7cbde3cade4e
Key Concepts: Repositories
Often shortened to ‘repo’
A collection of all the files and the history of those files
Consists of all your commits
Place where all your hard work is stored
Can live on a local machine or on a remote server (GitHub!)
The act of copying a repository from a remote server is called cloning
Cloning from a remote server allows teams to work together
The process of downloading commits that don’t exist on your machine from a remote repository is called pulling changes
The process of adding your local changes to the remote repository is called pushing changes
Key Concepts: Branches
All commits in git live on some branch
But there can be many, many branches
The main branch in a project is called the master branch