Overview
Neo Git Graph provides comprehensive branch management capabilities directly from the graph interface. All operations are executed using Git commands and reflect immediately in the graph view.Creating Branches
From Any Commit
Create a new branch pointing to any commit in the graph:- Right-click on a commit
- Select “Create Branch”
- Enter branch name
- Branch is created at the selected commit
Implementation
Branch names are automatically escaped to handle special characters safely.
Naming Rules
Git branch names must follow these rules:- Cannot contain
..,~,^,:,?,*,[ - Cannot start or end with
/ - Cannot end with
.lock - Cannot contain consecutive slashes
//
Checking Out Branches
Local Branches
Checkout an existing local branch:Remote Branches
Checkout a remote branch to create a local tracking branch:- Enable “Show Remote Branches”
- Right-click on remote branch
- Select “Checkout Branch”
- Local branch is created and set to track remote
Checkout Commit (Detached HEAD)
Checkout a specific commit to enter detached HEAD state:Renaming Branches
Local Branch Rename
Rename any local branch:Renaming a branch updates all local references but does not affect remote branches.
Deleting Branches
Safe Delete
Delete a branch that has been fully merged:Force Delete
Delete a branch even if it hasn’t been merged:Deletion Workflow
- Right-click on branch in graph
- Select “Delete Branch”
- Choose delete mode:
- Normal: Only if merged
- Force: Delete regardless of merge status
- Confirm deletion
What happens to commits?
What happens to commits?
Deleting a branch only removes the branch pointer. Commits remain in the repository and are visible in Git Graph if:
- They’re reachable from other branches
- They’re within the graph’s commit load range
- “Show all branches” is enabled
Merging Branches
Merge Branch into Current
Merge any branch into your current branch:Merge Options
- Fast-Forward (Default)
- No Fast-Forward
If possible, move branch pointer forward without creating merge commit:Creates a linear history when merging branches that are direct descendants.
Merge Commit
Merge a specific commit into current branch:Merge Conflicts
Branch Visualization
Branch Colors
Branches are automatically assigned colors from the configured palette:Remote Branches
Toggle remote branch visibility:Show Remote Branches
Enable the checkbox to display remote tracking branches in the graph
Hide Remote Branches
Disable to show only local branches and tags
Branch Filtering
View Specific Branch
Use the branch dropdown to filter commits:- Click “Branch” dropdown
- Select a branch name
- Graph shows only commits reachable from that branch
Default View
Configure which branches are shown by default:- Current Branch Only
- All Branches (Default)
Show only the currently checked out branch when opening Git Graph
Error Handling
All branch operations provide feedback:Success
Success
Operation completes silently and graph refreshes automatically
Git Error
Git Error
Error message from Git is displayed in a notification:
- Branch name conflicts
- Merge conflicts
- Uncommitted changes preventing checkout
- Protected branch restrictions
Network Error
Network Error
For operations involving remotes, network errors are caught and displayed
Repository File Watching
Git Graph watches for file system changes:When
.git/ directory changes are detected, the graph automatically refreshes to reflect new commits, branches, or tags.Related Features
Tag Management
Create and manage tags alongside branches
Multi-Repo Support
Switch between multiple repositories
Best Practices
Before Deleting
Before Deleting
- Verify branch is merged or obsolete
- Check if others are using the branch
- Consider archiving with tags instead
Merge Strategy
Merge Strategy
- Use
--no-fffor feature branches to preserve history - Use fast-forward for simple updates
- Communicate merge strategy with your team
Branch Naming
Branch Naming
- Use consistent naming conventions
- Include ticket/issue numbers
- Prefix by type:
feature/,bugfix/,hotfix/