Walk through updating the version of Git shipped in GitHub Desktop. This is a multi-repo process spanning dugite-native, dugite, and desktop. Use this when asked to update Git, update Git for Windows, or bump the Git version.
This skill guides the user through updating the version of Git that GitHub Desktop ships. This is a multi-repo cascade:
Each step must complete (PR merged + release published) before the next can begin.
Before starting, use <skill-directory>/check-versions.sh to show the user
what's currently shipped and what's available. Then ask the user which
components they want to update.
Even if the user only asks about one component (e.g., Git for Windows), proactively check all components and recommend bundling any other available updates. This avoids having to reship dugite-native if a test fails due to a version mismatch in a component the user didn't update.
Gather the following:
v2.48.0) — or latestv2.48.0.windows.1) — or latestskip if not updating (default: skip)skip if not updating (default:
skip)Use the helper script to trigger the workflow:
bash <skill-directory>/trigger-workflow.sh dugite-native update-dependencies \
git=<GIT_VERSION> g4w=<G4W_VERSION> lfs=<LFS_VERSION> gcm=<GCM_VERSION>
This triggers the Update dependencies workflow in desktop/dugite-native
which will:
dependencies.json with new URLs and checksumsImportant: The Git and Git for Windows updates are handled by the same
workflow step. If you only want to update Git for Windows, you must still pass
the current Git version (not skip) for the git input, otherwise the step
will be skipped entirely. Use <skill-directory>/check-versions.sh to find the
current Git version and pass it as the git input. For example, if Git is
currently at v2.53.0 and you only want to update GfW:
bash <skill-directory>/trigger-workflow.sh dugite-native update-dependencies \
git=v2.53.0 g4w=v2.53.0.windows.2 lfs=skip gcm=skip
Tell the user to:
bash <skill-directory>/check-workflow.sh dugite-native
bash <skill-directory>/open-pr.sh dugite-native
gh pr merge --auto --squash <PR_NUMBER> --repo desktop/dugite-native
Tell the user: "I've enabled auto-merge — please review the PR before CI
finishes so it can merge automatically."Do not proceed to Step 2 until the PR is merged.
Use the helper script to trigger the release workflow:
bash <skill-directory>/trigger-workflow.sh dugite-native release \
version=<VERSION_TAG> draft=false prerelease=false dry-run=true
Suggest running with dry-run=true first. If it succeeds, re-run with
dry-run=false.
The version tag should follow Git's versioning scheme:
v2.48.0 for a new Git versionv2.48.0-1 if only packaging or other dependencies changedTell the user to:
Use this to check if the release exists:
bash <skill-directory>/check-release.sh dugite-native <VERSION_TAG>
Do not proceed to Step 3 until the release is published.
Trigger the Update Git workflow:
bash <skill-directory>/trigger-workflow.sh dugite update-git
No inputs are needed — it automatically fetches the latest dugite-native release.
The workflow creates a PR that updates script/embedded-git.json. Tell the user