Skip to content

Fetch, pull and push

The toolbar’s Pull and Push buttons show how many commits you’re behind and ahead. Git’s progress shows in the toolbar while they run.

  • Fetch All: ⌘L.
  • Pull can merge, fast-forward only, or rebase. Pick from the Pull button’s options.
  • Push publishes a branch with no upstream. Force push uses --force-with-lease, so it won’t overwrite commits you haven’t seen.

Before pushing, MyTwig asks when:

  • you’re pushing straight to the remote’s default branch (main or master). Settings → Git can block this;
  • a file is over 100 MB, which GitHub would refuse;
  • the remote has commits you don’t. It offers to pull them in and push again, or to force push.

MyTwig fetches the repository you’re looking at every minute by default. Change it to 5, 10 or 30 minutes, or off, from the palette. Settings → Git → Background fetch decides what fetches while you’re not looking: the menu bar’s repositories (the default), every open tab, or nothing. Background fetches never ask for passwords.

Fetches prune remote branches that are gone, unless you turn that off or set fetch.prune in your Git config.

When a push, fetch or clone that took 10 seconds or more finishes while the window is in the background, you get a system notification.

Each remote is a folder in the left panel. + on the Remote section adds one; MyTwig checks the URL first, and offers shortcuts to the repository it was forked from and other forks.

Right-click a remote to fetch or prune it, edit its URL or push URL, rename or remove it, copy its URL, open it in the browser, or make it where new branches push to. You can also choose its icon.

  • Double-click one to check out a local branch that tracks it.
  • Delete one from its menu, its label in the graph, or with ⌫. MyTwig asks first, and can delete the local branch too. The remote’s default branch can’t be deleted.

When Git or SSH asks for a username, password or passphrase, MyTwig shows a dialog. Your credential helper still answers first. Accounts you’ve signed in to in Settings → Accounts also answer HTTPS prompts for their host.

Settings → SSH lists your keys in ~/.ssh with their fingerprints and whether the agent holds them. Add one to the agent, create a new Ed25519 key, or test a connection to GitHub, GitLab, Bitbucket, Codeberg or any host. Only public keys are read.