[GTALUG] git questions
David Collier-Brown
davec-b at rogers.com
Sun Mar 8 21:38:27 UTC 2015
Most of the GUIs just add a different wodge of complexity, where each is
subtly different.
From the command-line, an alias or script like
git log --oneline --abbrev-commit --all --graph --decorate --color
will show you quite enough to make your head hurt, and is what the
authoers use.
--dave
On 03/06/2015 10:40 AM, Alex Volkov wrote:
> Hi Giles,
>
> Try installing 'gitk' graphical tool that visualize a lot of things
> your asking about. Just run "gitk &" from anywhere under your git
> project root repository.
>
> Alex.
>
> On Fri, Mar 6, 2015 at 10:29 AM, Giles Orr <gilesorr at gmail.com
> <mailto:gilesorr at gmail.com>> wrote:
>
> I've started using git fairly heavily (although not necessarily very
> well). I have several repos: a couple are code, also my ~/.vim/
> folder and I'm thinking about adding ~/bin/ . If I remember to push
> from a particular machine before leaving it, I'll never have to deal
> with merging as I'm the only user. While most likely my discomfort
> with merging will be overcome by practice as I understand git does it
> well (I use SVN at work: merging is shudder-inducing), I'm guessing
> keeping everything up to date is still preferable. These questions
> are mostly about incorporating information about the repo into the
> Bash prompt: I was impressed recently by the way zsh appears to handle
> it, with a sequence of tiny icons in the lower right corner of the
> terminal indicating relative status. I didn't talk to the zsh user
> long, so I don't know if that's built-in, a plugin, or something he
> did himself.
>
> I'm starting from some code I got from nitrous.io
> <http://nitrous.io>, lovely in its conciseness:
>
> parse_git_branch () {
> git branch --no-color 2> /dev/null | sed -e '/^[^*]/d' -e "s/*
> \(.*\)/\1$(parse_git_dirty)/"
> }
> parse_git_dirty () {
> git diff --no-ext-diff --quiet --exit-code &>/dev/null || echo "!"
> }
>
> Put \$(parse_git_branch) into your prompt and it tells you what branch
> you're on, and if there are any unstaged changes (and goes away if
> you're not in a repo). I'd prefer it did uncommitted rather than
> unstaged, haven't tried to fix that yet. But I want to update it as
> it doesn't deal with origin at all.
>
> So, the questions:
>
> What is the easiest and most concise way to determine if your local is
> behind origin master? I've found that "git remote show origin" will
> show this information, but I'm not sure if it's the "best" way to find
> out, and I'm also concerned that running that every time your prompt
> comes up would slow things down as it makes a remote call(?) to get an
> answer - when you might not even have a network connection, or worse,
> a very slow connection.
>
> "git status" usually says "Your branch is up-to-date with
> 'origin/master'" (or "ahead"), but occasionally - even though origin
> is configured properly - this line doesn't appear. Is there a way to
> convince it to always show this line?
>
> Unfortunately, "git status" doesn't seem to ever notice if you're
> "behind" origin, thus the need for "git remote show origin". Any fix
> for that?
>
> The thought was to have output for the prompt that looked like this:
>
> (everything synced): "master-"
> (uncommitted local changes): "master!-"
> (behind origin): "master^"
> (ahead of origin): "masterv"
> (ahead and behind, with local changes): "master!^v"
>
> You get the general idea.
>
> I'm aware git is capable of immense complexity (branches, detached
> head, multiple remotes, different remotes for push and pull, etc.)
> that aren't addressed here. If I tried to tackle all of that at once
> (especially given I don't understand most of it) my head would explode
> and nothing would get done. So I'm sticking with my simple use case
> until I have to deal with the more complex stuff.
>
> Any thoughts welcome.
>
> --
> Giles
> http://www.gilesorr.com/
> gilesorr at gmail.com <mailto:gilesorr at gmail.com>
> ---
> Talk Mailing List
> talk at gtalug.org <mailto:talk at gtalug.org>
> http://gtalug.org/mailman/listinfo/talk
>
>
>
>
> ---
> Talk Mailing List
> talk at gtalug.org
> http://gtalug.org/mailman/listinfo/talk
--
David Collier-Brown, | Always do right. This will gratify
System Programmer and Author | some people and astonish the rest
davecb at spamcop.net | -- Mark Twain
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://gtalug.org/pipermail/talk/attachments/20150308/5fa30fa5/attachment.html>
More information about the talk
mailing list