Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions slides/README.md
Original file line number Diff line number Diff line change
@@ -1 +1,5 @@
# Slides

These slides are in Markdown with some slight custom formatting to make use of Marp (https://yhatt.github.io/marp/). Marp builds slides from Markdown and export them to PDF, to be uploaded to and presented from [Speaker Deck](https://speakerdeck.com/).

For an enhanced preview of these slides & to use the above features, download the Marp application.
Binary file added slides/images/octocat.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added slides/slides-basic.pdf
Binary file not shown.
136 changes: 136 additions & 0 deletions slides/slides.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,136 @@
<!--
$size: 4:3
$theme: gaia
template: invert
page_number: true
-->
# Git/Hub for Collaborative DataSci & DataEng

![50%](images/octocat.png)

###### *With the AI Club for Gender Minorities, London*
###### *By Alessia Visconti, Ester Ramos & Fei Phoon*
###### *26/02/2019*

---
##### For Alessia, if you need a slide or two?
---

*Actually, you're here to learn:*

#### ~~Git/Hub for Collaborative DataSci & DataEng~~

# Good Collaboration in Nearly Anything File-Based, using GitHub

---
## Good collaboration...

- makes a safe space for constructive and honest discussion.
- makes room and time for teaching and learning.
- accepts mistakes & mishaps - and that we'll help each other fix and learn from them.
- does not blame and shame.
- gives credit and recognition where it is due.
- is first and foremost about working with and respecting other people.

---
## Good collaboration...

- is NOT an optional "soft" skill for engineers - it's essential!


### **Git & GitHub are only tools to help us focus on tracking contribution and discussion.**

---
## Git vs GitHub

- **Git != GitHub**

- **GitHub:** a web application that allows people to store and collaborate on a project. Today we'll learn to use this!

- **Git:** a version control system; the underlying magic/the engine under the hood, that manages contribution history and order.

---
## Key Git Concepts

1. **Repository:** a project.
2. **Branch:** a collection of changes.
3. **Master:** the "default" branch, also the most recent, fully-approved version of the project.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Shall we give them an idea of how a good project is set up? I mean master branch, release branch, develop branch, fix branches, ...

Copy link
Collaborator

@Ester-Ramos Ester-Ramos Feb 21, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we should keep it simple. That is the git flow process I use at kobalt, and it took me a while to get my head around it.

4. **Commit:** a saved change on a branch. So branches are groups of changes with a common objective.
5. **Pull request (PR)**: a request to add your branch of changes to `master`.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You can't do a PR to a branch different from master?

Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Of course! But let's keep it simple for beginners & head straight for our learning objectives - this will get them where they need to be. Delving into git branching is intermediate level.

6. **Merge**: the action that accepts your branch into the master branch.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As before, it cannot be just a generic that accepts your branch into another branch? Or a remote branch (but not sure if GH IU has concepts like local/remote.

Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As before about branching :) We are using Github web UI because local/remote (as with push/pull/fetch) are additional concepts, and we cover that later.


---
## Today's learning objectives

- Learn a universally-accepted collaboration workflow
- Use key Git concepts on a project, using the GitHub web UI.

---
## Workshop Time

See: https://github.com/feiphoon/github-workshop/
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Shall we link directly to the github.io project's pages?

Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we should focus on getting an MVP out - we need time to show our support team/tutors what they need to revise, plus I have another project to finish before Sunday. There's no reason why the markdown files won't be fine to use as they are - they're formatted nicely and accessible. Can we leave the transfer to Pages as a last enhancement and a nice-to-have? Changing this link will be part of that.


Reminders for collaboration:

- Be kind (you can still be firm & opinionated!)
- Leave constructive comments
- If you feel an online conversation isn't working out, retry the discussion in person.
- If you're lost, ask for help! There are no silly questions, only lost people feeling sad that they didn't ask for help sooner.

---
## Workshop Recap

- created a repository
- learned to make commits
- logged an issue
- responded to an issue
- asked for a review
- reviewed changes
- accepted a review
- merged or confirmed contributing your changes
- tidied up!

---
## Git in the Wild

- Today's exercise: a pared-down version of what many code contributors use, from individuals & small teams on hobby projects, to developers & engineers on large repositories at work.

- Other variations for Git collaboration:
- **git-flow** - fancier version of what we did today, designed especially to manage releases e.g. `release v1.7`
- **forking** - especially for open source or community-supported projects

---
## Git the Party Started

- Examples of non-code projects on GitHub:
- A crowdsourced travel itinerary: https://github.com/dylanegan/travel
- A novel: https://github.com/gregorygershwin/Benjamin-Buckingham-And-The-Nightmares-Nightmare-Novel

- Open source libraries with collaborators all over the world, e.g. https://python-sprints.github.io/


---
## Other Interfaces for Git

This is down to your workflow preferences:
- Bitbucket
- Gitlab
- GitHub Desktop
- Git command line
- Git integration in code editors & IDEs (Atom/Sublime/PyCharm)

---
## Your Future Lies In:

- finishing these exercises with your teammates
- starring the workshop repo for reference - check back for some light recap reading
- looking at the history of the workshop repository - we collaborated remotely to create it!
- exploring GitHub further by using it for a project
- coming to our next session to learn to use GitHub Desktop and Git from command line
- eventually learning to contribute to open source e.g. Pandas
---

# Question Time
---

# Thank you!
Binary file added slides/slides.pdf
Binary file not shown.