Fetch, pull & push
Fetch, Pull, Push and Stash are on the Git toolbar and in the Repository menu.
| Action | macOS | Linux |
|---|---|---|
| Fetch | ⇧⌘F | Ctrl+Shift+F |
| Pull | ⇧⌘L | Ctrl+Shift+L |
| Push | ⇧⌘P | Ctrl+Shift+P |
Fetch
Fetch updates the current repository. Repository › Fetch All fetches every repository of your workspaces. tratto also fetches on its own, per project, at an interval.
Pull
Pull follows your Git configuration (pull.rebase, pull.ff): fast-forward only, merge, merge without fast-forward, rebase, or rebase keeping merges. tratto refuses a configuration it cannot run safely, such as an interactive rebase, and refuses a rebase pull while you have local changes.
Push
Push sends the current branch to its upstream. When the branch has no upstream yet, tratto sets one: the remote your Git config names, else the only remote, else origin.
tratto never force-pushes. No force flag exists in its Git core, and a configuration that would force a push is refused.
Remotes
The + in the sidebar adds a remote. A remote's context menu offers Edit URL…, Switch Transport (SSH or HTTPS) and Remove.
Authentication
tratto uses what Git already uses on your machine: your ssh-agent and your Git credential helpers. Git's terminal prompts are turned off, so a key that needs a passphrase must be loaded in the agent first (ssh-add).
Accounts… and Configure SSH Keys… in the app menu are not built yet.