Skip to content
CrocoDocs
Starter GuideProgrammingEngineeringDesignPortfolio
Documentation

Introduction

IntroductionBIOBUZZ game overview

Getting started

Getting startedBlocksOnBot JavaAndroid StudioYour first OpModeJava basicsMotors and servosNonblocking codeDebugging robot code

Control systems

Control systemsJoystick mappingField-centric mecanum drivePID controlFeedforwardFlywheel velocity controlSystem identificationMotion profilingKalman filterLow-pass filter

Autonomous

AutonomousTimed and encoder movementOdometryLocalization troubleshootingMotion planningReliable autonomous sequencesPure PursuitSensor fusionAuto to TeleOp handoff

Season topics

Season topicsProjectile mathematicsTurret aimingShooting on the move

Code practices

Code practicesNaming conventionsCode organizationLoop timing and bulk readsFormattingComments and documentationTeam collaboration

Libraries

LibrariesNextFTCFTCLibSolversLibPedro PathingRoad RunnerFTC DashboardMercurial v2Mercurial v1PanelsSloth

Community software

Community softwareBlaze FTCOpenLoopHive Vision

Sensors and vision

Vision overviewVision basicsLimelight 3A
Starter Guide
Engineering
Design
Portfolio
Appearance

Team collaboration

Share robot code without losing changes or confusing teammates

Version control

Git keeps a history of code changes. A commit is a saved point in that history. A remote is a shared copy, often on GitHub, that teammates can fetch from and push to.

A Git change moves from edited files to a selected set of staged files, then to a local commit, and finally to the team's shared remote.

Before a new programmer edits the project, agree on who owns the shared repository and how the team checks changes on the robot. A successful code build does not prove that , , and behave correctly.

Git workflow

Use these commands in your team's project folder. If you use Android Studio's Git buttons, the same ideas still apply.

  1. Get the latest team work: git pull. If Git reports a conflict, stop and resolve it with a teammate before editing more files.
  2. Make one focused change. For example, adjust one arm limit and test the arm safely.
  3. See what changed: git status lists changed files; git diff shows changed lines. Review these before saving a commit.
  4. Stage only relevant files: git add TeamCode/src/main/java/org/firstinspires/ftc/teamcode/Arm.java. Staging selects exactly what goes into the next commit.
  5. Save the change: git commit -m "Limit arm power during homing".
  6. Share it: git push sends your local commits to the shared remote.

This example path is only illustrative; use your actual file path. A commit message should say what behavior changed. If a change needs context, explain the reason in the commit body or team review.

Branches and reviews

For a larger task, create a branch. A branch is a separate line of work that teammates can review before it joins the main branch.

git switch -c feature/arm-homing
# Edit, test, review, and commit your change.
git push -u origin feature/arm-homing

Open a pull request or use your team's agreed review process. Ask another programmer to read the change and, when relevant, watch the robot test. Merge only after the team understands what the new behavior does.

If two people change the same lines, Git may show a merge conflict. Read both versions, decide what the final code should do, then build and test that result. Do not automatically keep one side without understanding the other.

Review checklist

  • Does the code compile, and is the changed behavior tested on the robot?
  • Do hardware names match the configuration?
  • Are motor direction, power, and servo limits safe for this ?
  • Can another student understand the intent from names and short comments?
  • Did the commit include only the intended files?

Keep generated build files and personal secrets out of commits. The SDK project includes a .gitignore; review it before adding a new kind of generated file. If a team accidentally commits a secret, remove or rotate the secret in its original service as well as correcting the repository history.

Onboarding

Pair on one small task: one student edits while the other asks what each line does and watches the test. Switch roles after the first working change. Keep a short README with the robot configuration names, how to build the project, and the steps for a safe test.

Sources

  • Git basics: recording changes
  • Git basics: branching
  • FTC SDK project

Comments and documentation

Explain decisions that code alone cannot show

Libraries

A sourced directory of tools used in FTC robot software

On this page

Version controlGit workflowBranches and reviewsReview checklistOnboardingSources