Log and Working Tree Window Preferences

Use Preferences -> Commands -> Log and Working Tree window to configure commands in these windows.

Commit View

If nothing is staged controls which changes the Commit View proposes to commit:

  • Ask prompts you how to proceed.
  • Commit all, except of untracked files includes changes to tracked files.
  • Commit all, including untracked files also includes new files that are not yet tracked.

When one file is selected and other visible changes exist, the Commit File or Commit All choice appears regardless of this setting.

Commit Dialog

Under Suggest to, choose which changes should be proposed in the Commit dialog:

  • Add untracked files suggests including new files.
  • Remove missing files suggests recording deletions from the working tree (git rm).

Preselect ‘Staged’ if files are staged, even if a file without staged changes is selected gives staged changes priority when opening the dialog.

Push

Automatically set up tracking for new branches configures an upstream when you push a new branch, provided Git’s push.default is unset.

Stash

Automatically save stash on common commands, if they fail due to local changes lets SmartGit temporarily set aside unfinished work when switching branches or pulling. If local changes block a supported command, SmartGit saves them in a stash and retries the command. Afterward, it tries to restore your changes and their staging state.

Include untracked files includes new, untracked files in automatic stashes and when using Local | Stash All. SmartGit may still ask for confirmation if an operation requires stashing untracked files.

Note

If a merge or rebase stops for conflict resolution, your local changes can remain in the stash. Complete the operation, then use Apply Stash to restore them.

Refresh

Distinguish between content and EOL-only changes (slightly more expensive) refines the State shown for modified text files in the Files view. Git’s normal modified state does not distinguish content edits from line-ending-only differences. SmartGit compares the working-tree file with its Index version to identify changes that affect only line endings. Reading and comparing file contents can make refresh slower in large working trees.

An EOL-only change can still appear modified even when Git’s line-ending conversion prevents it from being staged. SmartGit marks this case as Modified (EOLs only, not stageable); staging it produces no change to commit. See File States for the state descriptions.

To control Git’s line-ending conversion, use core.autocrlf in your Git configuration or the text and eol attributes in .gitattributes.