Collaborating with Git

Master collaborative development workflows and best practices for team-based Git operations

Learning Objectives

  • Learn how to work effectively with remote branches
  • Master the pull request workflow
  • Understand code review best practices
  • Discover collaboration strategies and team workflows

Working with Remote Branches

Effective collaboration starts with proper management of remote branches. Understanding how to track and synchronize branches is essential for team workflows.

Remote Branch Operations

Remote Branch Management
# List remote branches
$ git branch -r
# Create and track remote branch
$ git checkout -b feature-branch origin/feature-branch
# Push new branch and set upstream
$ git push -u origin feature-branch
# Delete remote branch
$ git push origin --delete feature-branch

Tracking Branches

Branch Tracking
# Set upstream branch
$ git branch --set-upstream-to=origin/main main
# View branch tracking
$ git branch -vv
# Check remote branch status
$ git remote show origin

Working with Pull Requests

Pull requests (PRs) are a way to notify team members about changes you've pushed to a repository. They're central to many collaboration workflows.

Pull Request Workflow

  1. 1.
    Create Feature Branch
    $ git checkout -b feature-branch
    $ git push -u origin feature-branch
  2. 2.
    Make Changes
    $ git add .
    $ git commit -m "Implement feature"
    $ git push
  3. 3.
    Keep Branch Updated
    $ git fetch origin
    $ git rebase origin/main
  4. 4.
    Address Review Feedback
    $ git commit -m "Address review feedback"
    $ git push

PR Best Practices

  • Keep PRs focused and reasonably sized
  • Write clear descriptions and include context
  • Reference related issues or tickets

Code Review Process

Code review is a crucial part of collaborative development, helping maintain code quality and share knowledge across the team.

Reviewing Code

As a Reviewer

  • • Check code style and conventions
  • • Look for potential bugs
  • • Consider edge cases
  • • Verify test coverage

As an Author

  • • Respond to all comments
  • • Explain complex changes
  • • Update code as needed
  • • Keep the discussion focused

Collaboration Workflows

Different teams may use different collaboration workflows. Here are some common patterns:

Feature Branch Workflow

Create a branch for each feature or bug fix:

# Create feature branch
$ git checkout -b feature/add-login
# Work and commit changes
$ git commit -m "Add login form"
# Push and create PR
$ git push -u origin feature/add-login

Fork and Pull Workflow

Fork repository and work in your copy:

# Add upstream remote
$ git remote add upstream original-repo-url
# Keep fork updated
$ git fetch upstream
$ git rebase upstream/main
# Push to fork
$ git push origin main

Collaboration Best Practices

  • Communicate clearly:

    Use clear commit messages and PR descriptions to explain your changes

  • Stay updated:

    Regularly sync with the main branch to avoid large merge conflicts

  • Follow conventions:

    Adhere to team's branching, commit message, and code style conventions

What's Next?

Now that you understand Git collaboration, in the next lesson you'll learn about:

  • Stashing changes and managing work in progress
  • Advanced branch operations and management
  • Working with tags and managing releases