Conteúdo Programatico
Fundamentals
- What is Git?
- Why care about Git?
- A series of snapshots
- Distributed
- Initializing Git
- What objects does Git track?
- What is a repository?
File States, Hashes, Commit History
- File States: tracked vs untracked
- Two-step commit process
- What is staging?
- How does Git uses hashes?
- First commit
- Git log and the commit history
Adding and Removing Files
- Adding multiple files
- Adding directories
- Trees in Git (directories)
- Commits, files, and the working dir
- Removing files and directories
Branches
- What is a branch?
- How does Git track branches
- What is the HEAD file?
- Creating branches
- Branches as pointers
- Our first merge
- What is a fast-forward merge?
Merging
- Deleting a branch
- What is a three-way merge?
- How Git handles a three-way merge
- Performing a three-way merge
- Rebasing insteading of merging
- How to rebase a branch
Merge Conflicts
- What causes merge conflicts?
- How to create a merge conflict
- Resolving a merge conflict
- Merge conflict examples
Remote Repositories
- Working with remote repositories
- Adding a remote in Git
- Remote branches
- Where is remote information stored?
- git fetch
- No repository is better than another
Git Push/Pull and Tracking Branches
- git pull
- git pull with a rebase
- Pushing changes to a remote repository
- Adding a tracking branch
- How tracking branches affect behavior
- What is Git's refspec?
Using GitHub
- Creating a GitHub account
- Forking a repository
- Cloning your forked repository
- What git clone does automatically
- What is a packfile?
- Setting up a personal access token
- Adding a fork as a remote repository
GitHub Creating Repositories and Pull Requests
- Creating a repository in GitHub
- GitHub pull-requests
- Reviewing and approving pull-requests
- Updating forked repositories
- Commit history in GitHub
Tags, Config Options, Stashing Changes
- Creating and listing tags
- Pushing tags to a remote repository
- Customizing Git's config
- Stashing changes
- Popping changes from the stash
- Managing multiple stash entries
Undoing Commits, Git Workflows
- Undoing a commit (soft)
- Undoing a commit (hard)
- Implications of changing the history
- Force pushing your commit history
- Git workflows
GitHub Actions (Plus Package Only)
- An aside on YAML
- Creating your workflow
- Defining a job
- Defining steps
- Creating a matrix
- Adding simple tests