<style>
.reveal {
font-size: 20px;
}
.reveal div.para {
text-align: left;
}
.reveal ul {
display: block;
}
.reveal ol {
display: block;
}
img[alt=drawing] { width: 200px; }
</style>
# INFS2605
## 2.1 Git Introduction
---
# What is Git?
* Working on software as a group
* Group projects
* Industry
* Why not just use...
* E-mail?
* Slack?
* Facebook?
* But then what about...
* Google Docs?
---
# DVCS and Git
* Distributed version control system
* Git is one type of DVCS (the same way that Safari, Firefox and Chrome are types of web browsers)
* It allows you to:
* work on code at the same time and (relatively) seamlessly join it together
* see who did what and when
* retrieve previously deleted code
* Other advantages:
* Only keeeps track of changes, so you don't have to copy the whole project each time (faster and takes up less computer space)
* Keeps track of different versions of your project easily
---
# Git as a Submission Tool
* Submit some tutorial work
* Work on your group assignment together, and submit it
---
# Tools and Software
## Including Download Links
* GitHub: Online
* GitHub Classroom
* To use it on your machine with an easier user interface:
* My personal preference: [Sourcetree](https://www.sourcetreeapp.com/)
* An alternative: [GitHub Desktop](https://desktop.github.com/)
* Another alternative (Liz's preference): [Kraken](https://www.gitkraken.com/)
---
# Resources
* [Oh My Git](https://ohmygit.org/): A game which helps you learn how to use Git.
* [Learn Git Branching](https://learngitbranching.js.org/): Although we don't teach Git branching right now, you may find it useful, and in this way it's fun to learn. It will also re-inforce your understanding of the fundamental Git commands which we *will* be using.
* Google "learn how to use Git" to find more for yourself.
* [Official Documentation](https://github.com/git-guides/)
---
# Getting Started with Git
* Clone a repo
* Make changes
* Terminology:
* clone
* pull
* add
* commit
* push
* Demo simple changes that can be resolved automatically
* Demo complex changes which require manual merging
---
# Markdown
* "Markup" language
* Used in files with the extension .md
* Used to make otherwise text files have formatting such as headings, bold text, tables.
* Allows our formatting to be changed and passed through Git the same way as our code does. (Whereas Microsoft Word or Google Docs would not allow this.)
* Super simple to learn.
* Resources:
* [Lots of information and background knowledge](https://www.markdownguide.org/getting-started/)
* [Only what I need to know (Basic Syntax)](https://www.markdownguide.org/basic-syntax/)
---
## Markdown Demonstration
* Change the README.md file in our repository.
---
# Other Uses for Markdown
* Want to see the markdown for my lecture slides?
* They can be found [here](https://hackmd.io/Q2rLtiUhSLus2LCaHaU2Fw).
---
# Starter Kit
* Used for this week's tutorial work.
* Located [here](https://classroom.github.com/a/p0Q5pkoQ)
---
{"metaMigratedAt":"2023-06-16T19:32:12.093Z","metaMigratedFrom":"YAML","title":"2.1 - Git","breaks":true,"slideOptions":"{\"transition\":\"slide\"}","contributors":"[{\"id\":\"969c3c3d-0ef4-4f08-b22a-2f2b8951224b\",\"add\":3288,\"del\":102}]"}