|
| 1 | +<!-- |
| 2 | +$size: 4:3 |
| 3 | +$theme: gaia |
| 4 | +template: invert |
| 5 | +page_number: true |
| 6 | +--> |
| 7 | +# Git/Hub for Collaborative DataSci & DataEng |
| 8 | + |
| 9 | + |
| 10 | + |
| 11 | +###### *With the AI Club for Gender Minorities, London* |
| 12 | +###### *By Alessia Visconti, Ester Ramos & Fei Phoon* |
| 13 | +###### *26/02/2019* |
| 14 | + |
| 15 | +--- |
| 16 | +##### For Alessia, if you need a slide or two? |
| 17 | +--- |
| 18 | + |
| 19 | +*Actually, you're here to learn:* |
| 20 | + |
| 21 | +#### ~~Git/Hub for Collaborative DataSci & DataEng~~ |
| 22 | + |
| 23 | +# Good Collaboration in Nearly Anything File-Based, using GitHub |
| 24 | + |
| 25 | +--- |
| 26 | +## Good collaboration... |
| 27 | + |
| 28 | +- makes a safe space for constructive and honest discussion. |
| 29 | +- makes room and time for teaching and learning. |
| 30 | +- accepts mistakes & mishaps - and that we'll help each other fix and learn from them. |
| 31 | +- does not blame and shame. |
| 32 | +- gives credit and recognition where it is due. |
| 33 | +- is first and foremost about working with and respecting other people. |
| 34 | + |
| 35 | +--- |
| 36 | +## Good collaboration... |
| 37 | + |
| 38 | +- is NOT an optional "soft" skill for engineers - it's essential! |
| 39 | + |
| 40 | + |
| 41 | +### **Git & GitHub are only tools to help us focus on tracking contribution and discussion.** |
| 42 | + |
| 43 | +--- |
| 44 | +## Git vs GitHub |
| 45 | + |
| 46 | +- **Git != GitHub** |
| 47 | + |
| 48 | +- **GitHub:** a web application that allows people to store and collaborate on a project. Today we'll learn to use this! |
| 49 | + |
| 50 | +- **Git:** a version control system; the underlying magic/the engine under the hood, that manages contribution history and order. |
| 51 | + |
| 52 | +--- |
| 53 | +## Key Git Concepts |
| 54 | + |
| 55 | +1. **Repository:** a project. |
| 56 | +2. **Branch:** a collection of changes. |
| 57 | +3. **Master:** the "default" branch, also the most recent, fully-approved version of the project. |
| 58 | +4. **Commit:** a saved change on a branch. So branches are groups of changes with a common objective. |
| 59 | +5. **Pull request (PR)**: a request to add your branch of changes to `master`. |
| 60 | +6. **Merge**: the action that accepts your branch into the master branch. |
| 61 | + |
| 62 | +--- |
| 63 | +## Today's learning objectives |
| 64 | + |
| 65 | +- Learn a universally-accepted collaboration workflow |
| 66 | +- Use key Git concepts on a project, using the GitHub web UI. |
| 67 | + |
| 68 | +--- |
| 69 | +## Workshop Time |
| 70 | + |
| 71 | +See: https://github.com/feiphoon/github-workshop/ |
| 72 | + |
| 73 | +Reminders for collaboration: |
| 74 | + |
| 75 | +- Be kind (you can still be firm & opinionated!) |
| 76 | +- Leave constructive comments |
| 77 | +- If you feel an online conversation isn't working out, retry the discussion in person. |
| 78 | +- 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. |
| 79 | + |
| 80 | +--- |
| 81 | +## Workshop Recap |
| 82 | + |
| 83 | +- created a repository |
| 84 | +- learned to make commits |
| 85 | +- logged an issue |
| 86 | +- responded to an issue |
| 87 | +- asked for a review |
| 88 | +- reviewed changes |
| 89 | +- accepted a review |
| 90 | +- merged or confirmed contributing your changes |
| 91 | +- tidied up! |
| 92 | + |
| 93 | +--- |
| 94 | +## Git in the Wild |
| 95 | + |
| 96 | +- 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. |
| 97 | + |
| 98 | +- Other variations for Git collaboration: |
| 99 | + - **git-flow** - fancier version of what we did today, designed especially to manage releases e.g. `release v1.7` |
| 100 | + - **forking** - especially for open source or community-supported projects |
| 101 | + |
| 102 | +--- |
| 103 | +## Git the Party Started |
| 104 | + |
| 105 | +- Examples of non-code projects on GitHub: |
| 106 | + - A crowdsourced travel itinerary: https://github.com/dylanegan/travel |
| 107 | + - A novel: https://github.com/gregorygershwin/Benjamin-Buckingham-And-The-Nightmares-Nightmare-Novel |
| 108 | + |
| 109 | +- Open source libraries with collaborators all over the world, e.g. https://python-sprints.github.io/ |
| 110 | + |
| 111 | + |
| 112 | +--- |
| 113 | +## Other Interfaces for Git |
| 114 | + |
| 115 | +This is down to your workflow preferences: |
| 116 | +- Bitbucket |
| 117 | +- Gitlab |
| 118 | +- GitHub Desktop |
| 119 | +- Git command line |
| 120 | +- Git integration in code editors & IDEs (Atom/Sublime/PyCharm) |
| 121 | + |
| 122 | +--- |
| 123 | +## Your Future Lies In: |
| 124 | + |
| 125 | +- finishing these exercises with your teammates |
| 126 | +- starring the workshop repo for reference - check back for some light recap reading |
| 127 | +- looking at the history of the workshop repository - we collaborated remotely to create it! |
| 128 | +- exploring GitHub further by using it for a project |
| 129 | +- coming to our next session to learn to use GitHub Desktop and Git from command line |
| 130 | +- eventually learning to contribute to open source e.g. Pandas |
| 131 | +--- |
| 132 | + |
| 133 | +# Question Time |
| 134 | +--- |
| 135 | + |
| 136 | +# Thank you! |
0 commit comments