My 12 year old uses magit as a git interface and nothing else in emacs. That’s not a great testimonial as it was my direction to do that, but it seems to work just fine.
The areas where magit earns outsized praise is not around a basic “pull, add and commit everything, push” workflow, but rather around being selective about crafting self-consistent but single-theme revisions. That will not be as fluid for someone with no fluency in emacs keyboard navigation, but I think I’d still find it easier than using the git command line to do it. (Hard for me to say with 30 years of emacs in the rear view.)
Actually, I think git's got Magit beat on that. Magit might make it easier to stage specific lines, but git can stage specific parts of lines or even changes that are completely different than what's on the worktree, through the editing of diffs with `git add -p`'s `e` option.
(Ediff is a 2-way / 3-way interactive diffing interface, built into Emacs, with plenty of features for surgical diffing of files, buffers, directories and whatnot.)
This is news to me.
> select the section you want to stage and press 's'.
It stages line-wise for me. How do I get it to stage less than an entire line?
cd $(mktemp -d)
git init
echo bar > file.txt
git add file.txt
git commit -m "init"
echo foo_bar_baz > file.txt
# select only "foo_" in magit-status and press "s"
git diff --cached
will show diff --git a/file.txt b/file.txt
index 5716ca5..2fd000c 100644
--- a/file.txt
+++ b/file.txt
@@ -1 +1,2 @@
bar
+foo_bar_baz
rather than the desired diff --git a/file.txt b/file.txt
index 5716ca5..2fd000c 100644
--- a/file.txt
+++ b/file.txt
@@ -1 +1,2 @@
-bar
+foo_bar
I can't really imagine this feature working that well with just selection. Editing of the diff seems required.I just updated magit, too. It seems to have been published 3 days ago.
I could swear I remember this working in the past, but I can find no hint of it in a few quick searches, so I'm likely mistaken.
I'm sorry for the misinformation. Thanks for saying something.
I could swear I remember this working in the past, but I can find no hint of it in a few quick searches, so I'm likely mistaken.
I'm sorry for the misinformation.Thanks for saying something.
After hearing so much good of Magit in a previous thread here I thought 'ok why not?' and installed emacs and magit. That alone wasn't a walk in the park as I never used emacs before. Maybe I did something wrong but what I remember from it is mainly 'wtf x 10 and what kind of documentation is this'. After some hours I got the hang of it, and I see why it is liked, but still it didn't make me any faster with git because I already have everything needed for my main workflows (SublimeMerge + aliases). Also felt like to get any real value from it I'd need many extra hours on the learning curve and it wasn't clear to me whether the end result would actually be better than what I do now. So I skipped on it, but again: I fully understand that if you use emacs anyway it would be crazy not to use magit.
https://marketplace.visualstudio.com/items?itemName=kahole.m...
It's just keyboard oriented, text-light interaction design if you will.
invoke versionning (key 1), see what's changed, pick the parts you like (few navigations keys and 2 keys to pick/unpick), invoke commit (key 4) write and accept (key 5) (amend is key 6 if you made a mistake)
It's just fast, lean and tailored. Apparently people did it in vi too. I just wish it was the case in more places. Actually, whenever I write a vuejs thing, I try to embed keyboard as much as possible.