update-git
Skill1k starsChanged 5 years agoMITView on GitHub
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.
- Commits and pushes
We split this skill into the rules it gives an agent
24 rules. About 0 are common, 19 are distinctive, and 5 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈19
Distinctive · estimate
This author's own choices. Worth a look.
5
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 20
Before starting, use <skill-directory>/check-versions.sh to show the user what's currently shipped and what's available.
- Distinctive: line 39
Use the helper script to trigger the workflow:
- Very specific: line 49
Update dependencies.json with new URLs and checksums
- Distinctive: line 50
Update the git submodule
- Distinctive: line 67
Wait for the workflow to complete — use the script to check status:
- Distinctive: line 71
When the PR is created, open it in the browser and enable auto-merge:
- Distinctive: line 83
Use the helper script to trigger the release workflow:
- Distinctive: line 100
Wait for the build to complete across all platforms
- Distinctive: line 104
Use this to check if the release exists:
- Distinctive: line 120
No inputs are needed — it automatically fetches the latest dugite-native release.
- Distinctive: line 125
Wait for the workflow to complete
- Distinctive: line 150
Verify the package was published:
- Distinctive: line 160
Before proceeding, ask the user what they want to do with the dugite update:
- Very specific: line 191
If the user wants to cut a production release (e.g., from an existing beta tag like release-3.5.6-beta1):
- Very specific: line 208
Create a releases/<version> branch from the beta tag
- Distinctive: line 229
Verify CI builds pass on the merge commit
- Distinctive: line 231
If building from a specific tag, ask the user which tag or branch they're basing the release on.
- Very specific: line 256
Create a releases/<version> branch
- Distinctive: line 278
After explaining each step, ask the user to confirm when it's done before moving on
- Distinctive: line 280
When a workflow creates a PR, open it in the user's browser immediately:
- Distinctive: line 287
Do not wait for the user to ask — keep polling until the workflow completes or fails.
- Distinctive: line 293
When a workflow creates a PR, immediately open it in the browser and check for CI status
- Distinctive: line 295
If something goes wrong, help troubleshoot before continuing
- Distinctive: line 296
Use the helper scripts to check status and trigger workflows rather than asking the user to navigate to GitHub manually
≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Update Git Version in GitHub Desktop
This skill guides the user through updating the version of Git that GitHub Desktop ships. This is a multi-repo cascade:
- desktop/dugite-native — bundles Git binaries for each platform
- desktop/dugite — Node.js wrapper that consumes dugite-native releases
- desktop/desktop — the app itself, consumes dugite as an npm dependency
Each step must complete (PR merged + release published) before the next can begin.
Information to Gather
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:
- Git version (e.g.,
v2.48.0) — orlatest - Git for Windows version (e.g.,
v2.48.0.windows.1) — orlatest - Git LFS version — or
skipif not updating (default:skip) - Git Credential Manager version — or
skipif not updating (default:skip)
Step 1: Update Dependencies in dugite-native
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:
- Update
dependencies.jsonwith new URLs and checksums - Update the git submodule
- Automatically create a PR
Important: 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=skipTell the user to:
- Wait for the workflow to complete — use the script to check status:
bash <skill-directory>/check-workflow.sh dugite-native - When the PR is created, open it in the browser and enable auto-merge:
Tell the user: "I've enabled auto-merge — please review the PR before CI finishes so it can merge automatically."bash <skill-directory>/open-pr.sh dugite-native gh pr merge --auto --squash <PR_NUMBER> --repo desktop/dugite-native
Do not proceed to Step 2 until the PR is merged.
Step 2: Publish a dugite-native Release
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=trueSuggest 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.0for a new Git versionv2.48.0-1if only packaging or other dependencies changed
Tell the user to:
- Wait for the build to complete across all platforms
- Review the draft release notes — remove infrastructure-only changes
- Click Publish on the GitHub release page
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.
Step 3: Update dugite-native Version in dugite
Trigger the Update Git workflow:
bash <skill-directory>/trigger-workflow.sh dugite update-gitNo 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
to:
- Wait for the workflow to complete
- When the PR is created, open it in the browser and enable auto-merge:
Tell the user: "I've enabled auto-merge — please review the PR before CI finishes so it can merge automatically."bash <skill-directory>/open-pr.sh dugite gh pr merge --auto --squash <PR_NUMBER> --repo desktop/dugite
Do not proceed to Step 4 until the PR is merged.
Step 4: Publish dugite to npm
Trigger the Publish workflow:
bash <skill-directory>/trigger-workflow.sh dugite publish \
version=<SEMVER_BUMP> tag=latest dry-run=true- version:
minorfor a new Git version,patchfor bugfix-only - tag:
latestfor stable,nextfor pre-releases
Suggest running with dry-run=true first, then dry-run=false.
Verify the package was published:
bash <skill-directory>/check-npm.sh dugiteDo not proceed to Step 5 until the npm package is published.
Step 5: Update dugite in desktop
Before proceeding, ask the user what they want to do with the dugite update:
- Just bump dugite — create a PR with the version update on its own
- Prepare a production release — include the dugite bump in a new production release (e.g., building on an existing beta tag)
- Prepare a beta release — include the dugite bump in a new beta release off the development branch
Option A: Just bump dugite (standalone PR)
Important: Desktop has a nested package structure. The dugite dependency
lives in app/package.json, not the root package.json. Do NOT run
yarn upgrade dugite from the repo root — it will add dugite to the wrong
package.json.
cd <desktop-repo-path>
git checkout development && git pull
git checkout -b update-dugite-<NEW_VERSION>
# Edit app/package.json to set dugite to "^<NEW_VERSION>"
cd app && yarn install && cd ..
yarn why dugite
git add app/package.json app/yarn.lock
git commit -m "Update dugite to <NEW_VERSION>"
git push origin HEAD
gh pr create --title "Update dugite to <NEW_VERSION> (Git <GIT_VERSION>)" \
--base development --draftOption B: Prepare a production release with the dugite bump
If the user wants to cut a production release (e.g., from an existing beta tag
like release-3.5.6-beta1):
- Check out the latest beta tag — production releases are based on the
beta, not on
development:cd <desktop-repo-path> git fetch --tags git tag --sort=-v:refname | grep "release-.*-beta" | head -1 git checkout <latest-beta-tag> - Draft the production release:
This will:yarn draft-release production- Determine the next production version
- Create a
releases/<version>branch from the beta tag - Bump
app/package.json - Generate changelog entries from commits since the last release
- On the release branch, bump dugite by editing
app/package.jsondirectly (see note below about the nested package structure):# Edit app/package.json to set dugite to "^<NEW_VERSION>" cd app && yarn install && cd .. - Review the generated changelog — ensure the dugite/Git update is mentioned
(e.g.,
[Improved] Update Git for Windows to <GFW_VERSION>) and that version numbers reflect what's actually in this release, not what was in the beta - Commit all changes:
git add app/package.json app/yarn.lock changelog.json git commit -m "Bump version and add changelog" - Push the branch — GitHub Actions will automatically create a release PR
- Review the release PR — check the changelog and version bump look correct
- Get the PR reviewed and merge it
- Verify CI builds pass on the merge commit
If building from a specific tag, ask the user which tag or branch they're basing the release on.
Option C: Prepare a beta release with the dugite bump
- Bump dugite on the development branch and merge it:
Merge the PR once CI passes.git checkout development && git pull git checkout -b update-dugite-<NEW_VERSION> # Edit app/package.json to set dugite to "^<NEW_VERSION>" cd app && yarn install && cd .. git add app/package.json app/yarn.lock git commit -m "Update dugite to <NEW_VERSION>" git push origin HEAD gh pr create --title "Update dugite to <NEW_VERSION> (Git <GIT_VERSION>)" \ --base development - Then draft the beta release:
This will:yarn draft-release beta- Determine the next beta version (incrementing beta number or starting a new beta series)
- Create a
releases/<version>branch - Bump
app/package.json - Generate changelog entries
- Push the branch — GitHub Actions will create a release PR
- Review the release PR — check the changelog and version bump look correct
- Get the PR reviewed and merge it
- Verify CI builds pass on the merge commit
Combining production + beta releases
A common pattern is to release production first, then immediately cut a beta that includes the same changes on the development branch. If the user mentions this, walk them through both in sequence:
- Draft and release production with the dugite bump on the release branch (Option B) — when the release PR merges, development gets the dugite bump
- Draft and release beta off development (Option C, skipping the dugite bump since it's already on development from the production merge)
Guidance Style
- Walk through one step at a time — don't dump all steps at once
- After explaining each step, ask the user to confirm when it's done before moving on
- When a workflow creates a PR, open it in the user's browser immediately:
bash <skill-directory>/open-pr.sh <repo> - After triggering any workflow, automatically poll for completion every
15–20 seconds using
check-workflow.shand give the user a brief status update each time (e.g., "Still running — 45s elapsed, Linux arm64 building"). Do not wait for the user to ask — keep polling until the workflow completes or fails. When checking individual job status, use:gh run view <RUN_ID> --repo desktop/<REPO> --json status,jobs \ --jq '.jobs[] | select(.status != "completed") | "\(.name): \(.status)"' - When a workflow creates a PR, immediately open it in the browser and check for CI status
- If something goes wrong, help troubleshoot before continuing
- Use the helper scripts to check status and trigger workflows rather than asking the user to navigate to GitHub manually
- Provide direct links to workflow runs and PRs when available
Trending
Quiet this year.thin dataabout the whole repository
Who's talking about zetaloop/desktop
The biggest 1 of 1 mention linking to the repository that our crawl found. Each line is their own headline.
Other versions2 projects use a version of this.
Word for word · 2
- desktop/desktop★ 22k100% same
- pol-rivero/github-desktop-plus★ 779100% same
Edited · 0
None found.
Wrote their own version · 0
None found.
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository3 other files it gives its agents.
- .github/copilot-instructions.mdCopilot instructions
- assign-copilotSkill
- testingSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

