💻 Week 10 Lab

Using Git as a Team

Author

Dr Jon Cardoso-Silva

Published

28 March 2025

🥅 Learning Goals
By the end of this lab, you should be able to: i) Form your project groups, ii) Set up a collaborative GitHub workflow, iii) Experience and resolve merge conflicts, iv) Begin planning your project pitch for next week.
DS105W course icon

📍Time and Location: Check your timetable for your assigned lab session

📋 Preparation

  • If you already have a group of three from the same class, you can start thinking about project ideas
  • Read our Git Team Collaboration Guide before the lab

🛣️ Roadmap

Part 1: Form Your Groups (20 min)

(If you attended the lecture, you can skip this part and make more progress with the next part!)

Your lab instructor will begin by giving you time to form your groups. If you don’t already have a group, this is your chance to find teammates.

🎯 ACTION POINTS:

  1. Form your group

    • Ideal size: 3 members
    • Need help finding a group? Ask your lab instructor
    • Some groups may have 4 members (requires instructor approval)

    ⚠️ Did you miss this lab? You’ll be randomly assigned to a group later.

  2. Pick a creative name for your team

    • The name will be part of your GitHub repository URL
    • Make it unique and interesting
    • Be creative! Don’t use generic names like “Group 1” or “Team A”
  3. Find the GitHub assignment link:

    👥 Together Click on the link below and accept the assignment.

    🔗 PROJECT-GITHUB-CLASSROOM-LINK

  4. The first person to click the link will create a team name

    • Other group members should use the same team name when they join
    • You’ll see your new repository with just a README.md file
  5. Everyone should now clone the repository locally:

    git clone <repository-url>
    cd <repository-name>

💡 Coming up next: Your instructor will review how to use branches for team collaboration!

Part 2: Working Together with Git Branches (30 min)

🗣️ TEACHING MOMENT

Your lab instructor will demonstrate how teams can work safely on code using Git branches, using one of your group’s repositories as an example.

The Instructor’s Demo

Pay close attention as they show you how to:

  1. Create a branch

    git checkout -b add-team-info

    💡 Important Note: In this course, branches should serve a single purpose, reflected in their name.

  2. Modify a file on that branch

    ## Meet the Team
    
    - Team Member 1
    - Team Member 2
    - Team Member 3

    Then, commit and push to that branch. The main branch remains untouched.

  3. Create a pull request

    💡 Pro-tip: Pull requests let your team review and discuss changes before they become final.

  4. Merge the changes

    The group whose repository was used for the demo will review and merge the branch.

Wait for your instructor to finish the demo before moving to the next part.

Part 3: Managing Your First Conflict (40 min)

Now that you’ve seen how branches work, let’s create a safe space to experience your first merge conflict.

The Challenge

Working in your teams, you’ll each make changes to different sections of the README, each on a separate branch. When you try to merge them, you’ll encounter a conflict.

  1. Person A - Team Description

    git checkout main
    git pull
    git checkout -b <your-name>-team-description

    Add this section to your README:

    ## About Our Team
    
    We are students passionate about [your interests]...
  2. Person B - Project Ideas (in parallel with Person A)

    git checkout main
    git pull
    git checkout -b <your-name>-project-ideas

    Add this section to your README:

    ## Project Ideas
    
    Here are some topics we're excited to explore...
  3. Person C - Meeting Times (also in parallel)

    git checkout main
    git pull
    git checkout -b <your-name>-meeting-times

    Add this section to your README:

    ## Team Schedule
    
    We plan to meet on [days/times]...

💡 Note: This activity works best if you all start from the same point (the main branch) and work simultaneously.

Creating the Conflict

Now comes the fun part! Create pull requests for each branch and try to merge them one after another. The second or third merge will show a conflict.

⚠️ Don’t panic! When Git shows a conflict, it’s just asking for help deciding which changes to keep.

Resolving Together

👨🏻‍🏫 TEACHING MOMENT

Your lab instructor will wait until a couple of groups have conflicts, then demonstrate how to resolve them:

  1. Understand the conflict markers (<<<<<<<, =======, >>>>>>>)
  2. Decide which changes to keep
  3. Create a final commit that resolves the conflict

💡 Learning Insight

Merge conflicts aren’t mistakes - they’re a natural part of collaborative work. Think of them as opportunities to discuss and combine everyone’s contributions thoughtfully.

Part 4: Start planning your project Pitch

On 🗣️ W11 Lecture you will learn how to use GitHub Projects to plan your project. This will be important for your final submission at the end of May 2025. But for now, focus on preparing your pitch for next week.

🎯 ACTION POINTS:

  1. Keep it short (3-5 minutes) but make it count. This is worth 10% of your grade.

  2. We don’t want to see data yet!

    Focus on:

    • The data source(s) you’re planning to use
    • The research questions you hope to answer
    • How you’ll divide the work among team members
    • A topic you are interested in (you can always change it later)
    • Ideas of API(s) you might want to use
    • What would the database schema look like?
    • Which plots, and which geom_*() functions would you use to explore the hypothetical dataframes?
💡 Ideas for project topics

To give you ideas, top final projects from the past cohorts have ranged from:

By the way, all of these projects were great but of course, all of them had some minor issues which were addressed in our feedback to the group. Try to spot them!

Presentation Format

  • Your presentation MUST be a GitHub Page: Present your pitch using the GitHub Pages site you created today
  • Do not add excessive text: Unlike our course pages, which must be fully informative and rich in information, you are not preparing a tutorial but a concise pitch for your project.
  • Include visuals: Consider adding diagrams or images that help explain your concept
  • Keep it professional (or entertaining): This is practice for presenting data science work in professional settings

This will give you a head start on your pitch presentation for next week.

📚 Additional Resources