{"version":"2.1.242","anchor":"your-local-branch-is-moved-forward-onto-the-cloud-session-s-","canonical_anchor":"your-local-branch-is-moved-forward-onto-the-cloud-session-s-","heading":"Your local branch is moved forward onto the cloud session's commits","tier":"use","area":"Directory Sync","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.242\/e\/your-local-branch-is-moved-forward-onto-the-cloud-session-s-","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.242","markdown":"### Your local branch is moved forward onto the cloud session's commits\n\nYour local branch fast-forwards onto a cloud session's commits unless you turn it off.\n\n**What**\n\nWhen a cloud session's commits sit directly on top of your checkout's current HEAD and your working tree is clean, Claude Code now advances your local branch onto them and tells you your branch has Claude's commits. It waits instead when you have staged changes, an operation in progress, differing files or protected paths, each with a plain explanation. Set `CLAUDE_CODE_DIR_SYNC_FFWD` to switch this off; it is on otherwise.\n\n**Details**\n\n- The move takes the git index lock, merges the index, and updates the branch reference without following symbolic refs. If the index cannot be brought along, the whole move is undone.\n- Named waiting reasons include staged_changes, operation_in_progress, files_differ, not_yet_sent, untracked_dependency_path and protected_path.\n- Files whose names look like credentials, files that are git-ignored, files withheld from sync, and dot-led paths are never taken from the cloud.\n- Reported in telemetry as `branch_rule` on the git sync open event.\n\n**Evidence**\n\n`claude: undo the fast-forward (the index could not follow)`\n\n- Area: Directory Sync\n- Names: `CLAUDE_CODE_DIR_SYNC_FFWD`\n- Tier: Use it now\n- Useful: 4\/5\n- Signal: 3\/5"}