Git Essentials

Essential Git commands and workflows for version control, branching, and collaboration.

MIT-0 · Free to use, modify, and redistribute. No attribution required.
25 · 18.6k · 172 current installs · 177 all-time installs
MIT-0
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Benign
high confidence
Purpose & Capability
The name/description (Git commands and workflows) matches the SKILL.md content. The SKILL.md metadata declares a dependency on the git binary (requires bins: ["git"]), which is appropriate for this purpose — note the registry metadata earlier listed no required binaries, so there is a minor inconsistency between the manifest and the in-file metadata.
Instruction Scope
Instructions are limited to Git usage (config, clone, commit, branch, merge, push, reset, clean, etc.). They do modify user state (e.g., writing to ~/.gitconfig via git config --global) and include destructive operations (git reset --hard, git clean -fdx, force pushes), which are expected for a Git reference but can cause data loss if used carelessly.
Install Mechanism
This is an instruction-only skill with no install spec and no code files, so nothing is downloaded or written to disk by the skill itself — lowest-risk install footprint.
Credentials
The skill does not request environment variables or credentials, which is proportional. Note that interacting with remotes (clone/push/pull) will use whatever Git auth is available on the host (SSH keys, credential helpers, or interactive username/password), but the skill itself does not ask for or exfiltrate credentials.
Persistence & Privilege
The skill does not request always:true and is user-invocable; it does not attempt to modify other skills or system-wide agent settings. Its runtime instructions change local Git state as expected for Git operations, but it does not gain elevated platform privileges.
Assessment
This skill is essentially a published cheat-sheet of Git commands and is coherent with its stated purpose. Before using it: (1) ensure git is installed on the host (the SKILL.md expects the git binary); (2) be cautious with destructive commands (reset --hard, clean -fdx, force-push) — back up important work or operate on clones/branches; (3) be aware git config --global will alter your global Git identity; (4) the skill does not request credentials, but Git operations that contact remotes will use whatever auth is configured on your machine (SSH keys or credential helpers); and (5) there is a small metadata mismatch between the manifest and the SKILL.md regarding required binaries — that's likely benign but worth noting. If you want stricter safety, avoid running destructive commands provided here unless you understand their effects or test in a disposable repo.

Like a lobster shell, security has layers — review code before you run it.

Current versionv1.0.0
Download zip
latestvk97bv3vwx3mphkf8xxyp8ggdmx805dn1

License

MIT-0
Free to use, modify, and redistribute. No attribution required.

Runtime requirements

🌳 Clawdis
Binsgit

SKILL.md

Git Essentials

Essential Git commands for version control and collaboration.

Initial Setup

# Configure user
git config --global user.name "Your Name"
git config --global user.email "your@email.com"

# Initialize repository
git init

# Clone repository
git clone https://github.com/user/repo.git
git clone https://github.com/user/repo.git custom-name

Basic Workflow

Staging and committing

# Check status
git status

# Add files to staging
git add file.txt
git add .
git add -A  # All changes including deletions

# Commit changes
git commit -m "Commit message"

# Add and commit in one step
git commit -am "Message"

# Amend last commit
git commit --amend -m "New message"
git commit --amend --no-edit  # Keep message

Viewing changes

# Show unstaged changes
git diff

# Show staged changes
git diff --staged

# Show changes in specific file
git diff file.txt

# Show changes between commits
git diff commit1 commit2

Branching & Merging

Branch management

# List branches
git branch
git branch -a  # Include remote branches

# Create branch
git branch feature-name

# Switch branch
git checkout feature-name
git switch feature-name  # Modern alternative

# Create and switch
git checkout -b feature-name
git switch -c feature-name

# Delete branch
git branch -d branch-name
git branch -D branch-name  # Force delete

# Rename branch
git branch -m old-name new-name

Merging

# Merge branch into current
git merge feature-name

# Merge with no fast-forward
git merge --no-ff feature-name

# Abort merge
git merge --abort

# Show merge conflicts
git diff --name-only --diff-filter=U

Remote Operations

Managing remotes

# List remotes
git remote -v

# Add remote
git remote add origin https://github.com/user/repo.git

# Change remote URL
git remote set-url origin https://github.com/user/new-repo.git

# Remove remote
git remote remove origin

Syncing with remote

# Fetch from remote
git fetch origin

# Pull changes (fetch + merge)
git pull

# Pull with rebase
git pull --rebase

# Push changes
git push

# Push new branch
git push -u origin branch-name

# Force push (careful!)
git push --force-with-lease

History & Logs

Viewing history

# Show commit history
git log

# One line per commit
git log --oneline

# With graph
git log --graph --oneline --all

# Last N commits
git log -5

# Commits by author
git log --author="Name"

# Commits in date range
git log --since="2 weeks ago"
git log --until="2024-01-01"

# File history
git log -- file.txt

Searching history

# Search commit messages
git log --grep="bug fix"

# Search code changes
git log -S "function_name"

# Show who changed each line
git blame file.txt

# Find commit that introduced bug
git bisect start
git bisect bad
git bisect good commit-hash

Undoing Changes

Working directory

# Discard changes in file
git restore file.txt
git checkout -- file.txt  # Old way

# Discard all changes
git restore .

Staging area

# Unstage file
git restore --staged file.txt
git reset HEAD file.txt  # Old way

# Unstage all
git reset

Commits

# Undo last commit (keep changes)
git reset --soft HEAD~1

# Undo last commit (discard changes)
git reset --hard HEAD~1

# Revert commit (create new commit)
git revert commit-hash

# Reset to specific commit
git reset --hard commit-hash

Stashing

# Stash changes
git stash

# Stash with message
git stash save "Work in progress"

# List stashes
git stash list

# Apply latest stash
git stash apply

# Apply and remove stash
git stash pop

# Apply specific stash
git stash apply stash@{2}

# Delete stash
git stash drop stash@{0}

# Clear all stashes
git stash clear

Rebasing

# Rebase current branch
git rebase main

# Interactive rebase (last 3 commits)
git rebase -i HEAD~3

# Continue after resolving conflicts
git rebase --continue

# Skip current commit
git rebase --skip

# Abort rebase
git rebase --abort

Tags

# List tags
git tag

# Create lightweight tag
git tag v1.0.0

# Create annotated tag
git tag -a v1.0.0 -m "Version 1.0.0"

# Tag specific commit
git tag v1.0.0 commit-hash

# Push tag
git push origin v1.0.0

# Push all tags
git push --tags

# Delete tag
git tag -d v1.0.0
git push origin --delete v1.0.0

Advanced Operations

Cherry-pick

# Apply specific commit
git cherry-pick commit-hash

# Cherry-pick without committing
git cherry-pick -n commit-hash

Submodules

# Add submodule
git submodule add https://github.com/user/repo.git path/

# Initialize submodules
git submodule init

# Update submodules
git submodule update

# Clone with submodules
git clone --recursive https://github.com/user/repo.git

Clean

# Preview files to be deleted
git clean -n

# Delete untracked files
git clean -f

# Delete untracked files and directories
git clean -fd

# Include ignored files
git clean -fdx

Common Workflows

Feature branch workflow:

git checkout -b feature/new-feature
# Make changes
git add .
git commit -m "Add new feature"
git push -u origin feature/new-feature
# Create PR, then after merge:
git checkout main
git pull
git branch -d feature/new-feature

Hotfix workflow:

git checkout main
git pull
git checkout -b hotfix/critical-bug
# Fix bug
git commit -am "Fix critical bug"
git push -u origin hotfix/critical-bug
# After merge:
git checkout main && git pull

Syncing fork:

git remote add upstream https://github.com/original/repo.git
git fetch upstream
git checkout main
git merge upstream/main
git push origin main

Useful Aliases

Add to ~/.gitconfig:

[alias]
    st = status
    co = checkout
    br = branch
    ci = commit
    unstage = reset HEAD --
    last = log -1 HEAD
    visual = log --graph --oneline --all
    amend = commit --amend --no-edit

Tips

  • Commit often, perfect later (interactive rebase)
  • Write meaningful commit messages
  • Use .gitignore for files to exclude
  • Never force push to shared branches
  • Pull before starting work
  • Use feature branches, not main
  • Rebase feature branches before merging
  • Use --force-with-lease instead of --force

Common Issues

Undo accidental commit:

git reset --soft HEAD~1

Recover deleted branch:

git reflog
git checkout -b branch-name <commit-hash>

Fix wrong commit message:

git commit --amend -m "Correct message"

Resolve merge conflicts:

# Edit files to resolve conflicts
git add resolved-files
git commit  # Or git merge --continue

Documentation

Official docs: https://git-scm.com/doc Pro Git book: https://git-scm.com/book Visual Git guide: https://marklodato.github.io/visual-git-guide/

Files

1 total
Select a file
Select a file to preview.

Comments

Loading comments…