I am excited to announce the release of Magit version 3.0, consisting of 1264 commits since the last feature release two and a half years ago. The release notes can be found here.
Magit is a text-based Git user interface that puts an unmatched focus on streamlining workflows. Commands are invoked using short mnemonic key sequences that take the cursor’s position in the highly actionable interface into account to provide context-sensitive behavior.
With Magit you can do nearly everything that you can do when using Git on the command-line, but at greater speed and while taking advantage of advanced features that previously seemed too daunting to use on a daily basis. Many users will find that by using Magit they can become more effective Git user.
For more information about Magit, see https://magit.vc and these blog posts.
Over the years users kept asking me when I would finally release a new version and the answer usually amounted to “in approximately three months”. I really wanted to send out the cheat-sheets and posters from the fundraiser before releasing v3, but so far that sadly hasn’t yet happened either.
Not sure what changed today (well yesterday by now), but this time around I decided to just change the order and do to release immediately. I am hopeful that this will also help getting the perks done.
I am very sorry about both delays.
A lot has changed but for the most part the focus was on polish and spin-offs.
The big change are the completely reworked menus used to select arguments and invoke suffix commands. Magit now uses the Transient package to implement these menus. I released Transient two years ago and Magit uses it since then, so most of you have been using it for up to that long.
If you haven’t done so yet, then I recommend you read the first part of the manual. The second part (which is intended for package authors) by now has a bit of a reputation of being difficult to understand, but that shouldn’t keep you from reading the first part.
Magit-Section is now distributed independently of Magit, allowing unrelated packages to use it to implement buffers similar to those of Magit. Unlike Transient it is still being maintained in the Magit repository, but it comes with its own manual now.
If you like Magit’s UI, then you might also want to check out the packages that use Transient or use Magit-Section.
Oh, and I almost forgot the third spin-off: Forge. I worked a lot on that over the last three years as well. Also, even if you use both Forge and Orgit, you might still have missed the release of Orgit-Forge.
Recently I made the shocking discovery that not
nearly everyone uses “origin” to refer to the upstream repository.
Instead of going on a “tabs vs. spaces” like crusade I have taught
Magit to accommodate both fractions. As long as you name the
upstream either “upstream” or “origin”, then Magit should be able to
do the right thing without any user configuration, otherwise please
see the doc-string of function magit-primary-remote
.
Likewise Magit no longer assumes that the main branch is named
“master”. Without any user configuration Magit tries “main”,
“master”, “trunk” and “development” in that order and uses the first
one that exists in the current repository as the main branch.
Otherwise see the doc-string of function magit-main-branch
.
Many new commands and options. And bugfixes and more. Please refer to the release notes.