
Legit: A CLI tool to make Git more accessible - pcr910303
https://frostming.github.io/legit/
======
sandreas
Wouldn't it be enough to add some git aliases for this? Like:

    
    
      [alias]
      hist = log --pretty=format:\"%h %ad | %s%d [%an]\" --graph --decorate --date=short
      quick-push = "!f() { git add . && git commit -m \"$1\" && git push; }; f"
      grep-log = log -E -i --grep
      grep-hist = log --pretty=format:\"%h %ad | %s%d [%an]\" --graph --decorate --date=short -E -i --grep

------
pcr910303
Quoting the README:

> ## The Concept

> GitHub for Mac is not just a Git client.

> This comment[0] on Hacker News says it best:

>> They haven't re-created the git CLI tool in a GUI, they've created
something >> different. They've created a tool that makes Git more accessible.
Little >> things like auto-stashing when you switch branches will confuse git
>> veterans, but it will make Git much easier to grok for newcomers because of
>> the assumptions it makes about your Git workflow. Why not bring this >>
innovation back to the command line?

It provides a few interfaces like switch <branch> which switches to specified
branch by automatically stashing any changes, or sync [<branch>] which
(smartly) synchronizes the given branch. Etc...

[0]
[https://news.ycombinator.com/item?id=2684483](https://news.ycombinator.com/item?id=2684483)

~~~
Razengan
I wish GitHub Desktop would let me spellcheck commit messages, like every
other native text field, but nope, Electron.

~~~
memco
Check out Fork: [https://git-fork.com](https://git-fork.com). Has a bunch of
handy features and is a native app.

------
pearjuice
That's nice but I prefer people to use the "real" git just so they know how it
works and can manage when inevitably something goes wrong.

~~~
SOLAR_FIELDS
I agree to an extent. The main reason I prefer the “bare” command line tools
instead of sugary wrappers like this is for situations when I’m stuck in a
fire and don’t have my normal tools available to me. Examples include when you
need to do work on someone else’s machine or more commonly when you are ssh’ed
into some cloud infrastructure and you don’t have anything but the basic tools
available to work (and no permissions to install stuff like this from outside
the firewall). This philosophy applies more to knowing your way around bash
but also can apply to git as well.

It’s probably as not as big of a deal for people who never venture into ops
land but if you’ve ever done any sort of ops related work you know that
sometimes you’re only given hammers and screwdrivers instead of power tools
and expected to make it work.

That said I do see the value in these tools - git is quite an intimidating
beast and any tools that help people become more familiar with it can’t be a
bad thing - so long as they don’t eventually become a crutch for the end user
to avoid learning about how the base tool works.

~~~
pearjuice
How is git intimidating? It's one of the most user friendly pieces of CLI
applications out there, offers a myriad of ways to "ctrl z" and has proper
documentation. Problem is people don't get trained or don't want to learn.
They learn "git pull" and "git commit" and then think they know how it works.

~~~
EForEndeavour
I honestly can't tell if you're serious.

Some things off the top of my head that are in my opinion not at all trivial
for even intermediate git users:

\- How do you fix a typo in the commit message of the second-last commit that
you pushed to remote?

\- I accidentally committed something to the wrong branch. What's the best way
to uncommit it from that branch and commit it to the right branch?

\- What are the differences between the working tree, directory tree, index,
and staging area?

\- How do I "un-add" a file I just staged?

\- I've heard "git reflog" is useful. What is it?

~~~
pearjuice
If you have had any interaction beyond the basics of git those are trivial to
solve.

\- git rebase -i HEAD~2 -- interactive rebase of last 2 commits then read the
help you get (use reword on the commit you want to change, needs force push
because rewriting history)

\- various ways to do this but easiest is: checkout correct branch, cherry-
pick commit you want and then hard reset your faulty branch HEAD~1 (you can
also soft reset, keep it staging and then checkout correct branch and commit)

\- these are all terms you should know if you are using git in my opinion
because the commands et cetera will assume you know what they mean. I think it
comes with every beginners git tutorial?

\- I am pretty sure git status will tell you how to do this by default (which
shows staging area)

\- this is also properly documented and something a good git guide will gloss
over

Maybe I am biased because I use git on a daily basis but I don't think any of
these are hard. Anyone who calls themselves an intermediate git user should be
able to answer these questions from the top of their head. If you don't, no
problem, you can easily Google them and you will notice that they are very
straightforward and simple. I am not even sarcastic, git is very simple
software (in terms of usage and help/documentation available).

------
ConSeannery
This is great! Git is highly unintuitive and I wish it would die in favour of
mercurial or some other as-yet undeveloped thing. Those that like the way git
works have stockholm syndrome from being abused by it for so many years.

~~~
EForEndeavour
This is exactly my own attitude toward git, as well as pandas and matplotlib
(python's data-wrangling and de facto plotting libraries). Their APIs are
objectively rough, but after years of adapting to their countless quirks and
inconsistencies, I've come to love them.

------
cbzehner
Seems similar in aim to Gitless

[0] [https://gitless.com/](https://gitless.com/)

------
beagle3
Newer git (as of 2.23) has a built in "switch" command, which is not
compatible with legit switch (the latter does stash/unstash on switch, which
the built in does not).

Legit users beware.

------
pmoriarty
It's be interesting to hear how this compares to Magit.

~~~
j88439h84
Looks like legit is a tool for beginners. Magit is industrial strength.

~~~
mosselman
> Magit is industrial strength

Is it also Enterprise Compatible and Government approved? Cloud native maybe?

~~~
rowanG077
Yes it's web scale so even the NSA uses it.

------
alexeiz
It does too much. For example:

> $ git sync > # Stash, Fetch, Auto-Merge/Rebase, Push, and Unstash

Good luck if any of this actions fail. With raw Git you can easily correct the
problem and move on. With leGit, you'll be left wondering how screwed the
current state of your repo is.

------
antipaul
The only question is, how do you pronounce it? Like the English “legit”, or
the French way “le” plus “git”?

------
commandersaki
Blah git sucks. Just learn git.

~~~
henvic
I'd be mad if someone tried to force such software as the way to do things in
my workplace. However, thanks people try to build better things even if
everyone else thinks they are wasting time. I find trying to come up with
something better than git important at the very least from an academic
perspective.

------
kxes
English side ruined, must use French instructions. Le git? What the hell is
that?!

~~~
EForEndeavour
It's _legit_ , is what it is.

------
Razengan
Love the naming.

