Collaborative Development

Published: April 3, 2024Updated: December 9, 2025

Description

My team has been working very hard on new features for our flag printing program! I wonder how they'll work together?

Download the provided challenge.zip archive.

Extract it locally and move into the drop-in repository where the Git history lives.

wget https://artifacts.picoctf.net/c_titan/71/challenge.zip && \ unzip challenge.zip && \ cd drop-in/

Solution

This challenge builds on the Git fundamentals from Time Machine and Commitment Issues. For file-specific investigation, see Blame Game. Each feature branch here contains a slice of the flag inside flag.py. You can either read them one at a time or merge them back into main to watch Git handle the conflicts.
  1. Step 1List every branch
    git branch -a reveals the feature/part-* branches that contain pieces of the flag. They're local copies already, so you can check them out directly.
    git branch -a
  2. Step 2Inspect each feature branch
    Checkout each branch and read flag.py. Every branch prints a different slice of the flag, intentionally split to encourage review of multiple branches.
    git checkout feature/part-1 && cat flag.py
    Repeat for feature/part-2 and feature/part-3 to gather the middle and final segments.
  3. Step 3Optional: merge for a single view
    If you prefer one unified output, merge the feature branches into main (in any order) and resolve the minor conflicts. The combined flag prints once the merges complete.
    git checkout main && \ git merge feature/part-1 feature/part-2 feature/part-3

Flag

picoCTF{t3@mw0rk_m@k3s_th3_dr3@m_w0rk_4c2...}

Concatenate the outputs from each feature/part-* branch (or resolve the merged file) to reveal the full flag above.