---
format:
    revealjs:
        theme: simple
        chalkboard: true
        auto-stretch: false
---

## Versioning Tools

Keith VanderLinden<br>
Calvin University

## Tools

- Git
- GitHub

::: {.notes}
- Lab 2 uses Git/GitHub.
- Review Git Clients
    - Command-line (e.g., Linux*, MacOSx, WSL2, GitBash) - the default for cloud services (and this course)
    - GUI (e.g., VSCode*, Intellij) - see <https://git-scm.com/downloads/guis>
    - Web (e.g., GitHub*, GitLab, BitBucket) - see <https://docs.github.com/en/get-started/quickstart/hello-world>
- Show GitHub repos they'll need for this class.
    - (public) team repo: <https://github.com/CalvinData/data562-slo>
        - We could make this private if there are concerns about sharing the repo.
    - (private) assignment repo: <https://github.com/CalvinData/data562>
        - This is my private repo (to which you do not have access).
        - Invite us to access your personal, private repo.
        - This repo directory has a sub-directory for each assignment.
            e.g., `lab01/product.ipynb` - strictly speaking, this should not include the (derived) `product.pdf` file.
- Demo (via Linux CLI)
    1. Clone a repo (SLO or MwML).
    2. Show the files.
        - `.git` - only one at the root
        - `.gitignore`
            - potentially many entries (e.g., for vscode)
        - `README.md` - one at the root (at least) using (GitHub) markdown format
- Notes
    - Be careful about the revision history, it can contain:
        - Big (big) files that you tried to "delete" from the repo.
        - Passwords that you accidentally committed and tried to "delete".

References

- GitHub for:
    - personal repos: <https://github.com/CalvinData/data562-code>
    - team repos: <https://github.com/CalvinData/data562-slo>
- <https://github.com/kvlinden-courses/cs262/blob/master/materials/03management/class.md>
:::
