- name
- git-cli
- description
- Helper for using the Git CLI to inspect, stage, commit, branch, and synchronize code changes. Use when the user wants to understand or perform Git operations from the command line, including safe status checks, diffs, branching, stashing, and syncing with remotes.
Git CLI Helper
This skill explains how to use the Git command line for everyday development tasks in a repository.
When to Use
Use this skill when:
- The user wants to know “what changed” in the working tree.
- The user wants to stage, unstage, or commit files.
- The user wants to create or switch branches.
- The user wants to pull from or push to a remote.
- The user needs help with stashing, viewing history, or inspecting diffs.
Requirements
- Git is installed and available on the PATH (for example
git --versionsucceeds). - The current directory is either:
- Inside a Git repository, or - A location where the user intends to run git init or git clone.
When uncertain, suggest the user run:
git statusto see whether the current folder is a Git repository.
Safety Guidelines
- Prefer read-only commands first (
git status,git diff,git log) before suggesting changing commands. - Avoid destructive suggestions such as:
- git reset --hard - git clean -fdx - git push --force
- Only mention or recommend such commands if the user explicitly asks and understands the risk.
Common Workflows
1. Inspect current state
Check what has changed and whether there are untracked files:
git statusSee detailed changes in the working tree:
git diff # unstaged changes
git diff --staged # staged (to-be-committed) changes2. Stage and unstage changes
Stage a specific file:
git add path/to/fileStage all tracked and untracked changes:
git add .Unstage a file (keep changes in the working tree):
git restore --staged path/to/file3. Create commits
Create a commit with a message:
git commit -m "short, descriptive message"If the user prefers a multi-line message, suggest:
git commitwhich opens their editor.
4. Branching and switching
Create and switch to a new branch:
git checkout -b feature/my-branchSwitch to an existing branch:
git checkout mainList local branches:
git branch5. Synchronize with remote
If the repository already has a remote (for example origin):
- Fetch latest remote data:
git fetch- Pull latest changes into current branch:
git pull- Push the current branch and set upstream:
git push -u origin <branch-name>For subsequent pushes on the same branch:
git push6. Cloning and initializing
Clone an existing remote repository:
git clone <repo-url>Initialize a new repository in the current folder:
git initOptionally add a remote:
git remote add origin <repo-url>7. Stashing work-in-progress
When the user needs to temporarily put aside local changes:
git stashList stashes:
git stash listApply and keep the top stash:
git stash applyApply and drop the top stash:
git stash popViewing History and Blame
Show recent commits (compact format):
git log --oneline --decorate --graph --allSee who last changed each line of a file:
git blame path/to/fileTroubleshooting Tips
- If Git reports “not a git repository”, suggest:
- Running commands in the correct project folder, or - Initializing with git init (if appropriate), or - Cloning with git clone <repo-url>.
- If a push is rejected because the remote has new commits, suggest:
- git pull --rebase or git pull (depending on the team’s policy), then retry git push.
- If there are merge conflicts, explain:
- The user must edit the conflicted files, - Mark conflicts as resolved by git add, - Then complete the merge or rebase with git commit or git rebase --continue.