Git for the SQL library
functionalSee what changed in your SQL library, preview the diff, and commit - without leaving SQLly.
The SQL library and your project folders are plain folders on disk, so they can be git repositories - and SQLly can show and commit their changes without a trip to the terminal. The same git panel is available in two places:
- SQL library: open it with View › Show SQL Library; the Git section at the bottom of the panel covers the library folder.
- Project folder: after File › Open Folder…, click Git… in the Open Project File dialog, or run Project Folder: Git Changes… from the command palette. A Git — folder name window opens for that folder; opening it again for another folder re-points the same window instead of stacking copies.
Either way, the panel lists every changed file with its status. When the folder sits inside a larger repository, the panel covers just that folder: the list, Commit all, and the diff never reach files outside it, and paths are shown relative to the repository root, as git reports them.
Status, diff, commit
- Status list
- Modified, added, deleted, renamed, conflicted, and untracked scripts, each with git's two-letter staged/unstaged code. Refresh re-reads it and clears the last error message; it also refreshes after every commit.
- Diff
- Select a file and click Diff for a coloured unified diff against the last commit - additions, removals, and hunk headers. An untracked file has nothing to diff yet, and the preview says so.
- Commit
- Type a message, then Commit selected (just the highlighted file) or Commit all (every change, including new files and deletions). The commit records the content as it was when you clicked, even if a file changes while git runs. A blank message is refused.
- Initialize
- When the folder is not yet inside a repository, Initialize git repository runs
git initthere - only when you click it. If git itself is not installed, the panel says so instead.


SQLly runs the git you already have installed, in the library or project folder, with your own git configuration (author, hooks, signing). It never pulls, pushes, branches, or merges - use your usual tools for that; the panel picks up the result on the next refresh. Git prompts are disabled, so a command that would need interaction fails with git's own message instead of hanging. Desktop app only.