Git workflow with upstream repository

4 messages, 2 authors, 2016-06-15 · open the first message on its own page

Git workflow with upstream repository

From: Bradley Wagner <hidden>
Date: 2016-06-15 22:49:10

Hi, I'm trying to figure out the best way to work with two remote
repositories: one origin and an upstream repository.

Basically, with one remote origin I do 'git fetch' and then a 'git
status' which tells me my status as compared to my remote at which
point I decide wether I want to rebase or pull/merge.

If I'm working with another remote repository 'upstream' that I
perhaps don't have permissions to and then my branches are not
tracking against, how would I do something similar to be able to first
see how my branch compares to the remote and then either rebase or
pull/merge.

Am I missing something in git status that allows me to see my status
as compared to another remote?

Re: Git workflow with upstream repository

From: Avery Pennarun <hidden>
Date: 2016-06-15 22:49:10

On Fri, Jul 23, 2010 at 8:58 PM, Bradley Wagner
[off-list ref] wrote:
If I'm working with another remote repository 'upstream' that I
perhaps don't have permissions to and then my branches are not
tracking against, how would I do something similar to be able to first
see how my branch compares to the remote and then either rebase or
pull/merge.
# show the commits in my local branch that aren't in upstream
git log upstream/master..

# show the commits in upstream that aren't in my local branch
git log ..upstream/master

# a cuter way to show the commits in upstream that aren't in my local branch
git shortlog ..upstream/master

# summarize the differences in upstream since we diverged (not
including my own changes)
git diff --stat upstream/master..

# summarize the differences between my branch and upstream (including
my changes and theirs)
# (note: three dots)
git diff --stat ...upstream/master

Have fun,

Avery

Re: Git workflow with upstream repository

From: Bradley Wagner <hidden>
Date: 2016-06-15 22:49:10

Thanks, I'll check those out! So, I take it there is not a way to get
a simple message like what git status tells you when you're local
branch is behind the remote branch:

"Your branch is behind 'origin/master' by 1 commit, and can be fast-forwarded."

Is there even a concept of a fast-forward merge when pulling from a
remote repo that is not the remote to which your branches are
tracking?

Is it possible to rebase based on a branch that is *not* the branch
you're currently tracking? Is that what the --onto flag is for?

- Bradley

On Jul 23, 2010, at 9:24 PM, Avery Pennarun [off-list ref] wrot
On Fri, Jul 23, 2010 at 8:58 PM, Bradley Wagner
[off-list ref] wrote:
quoted
If I'm working with another remote repository 'upstream' that I
perhaps don't have permissions to and then my branches are not
tracking against, how would I do something similar to be able to first
see how my branch compares to the remote and then either rebase or
pull/merge.
# show the commits in my local branch that aren't in upstream
git log upstream/master..

# show the commits in upstream that aren't in my local branch
git log ..upstream/master

# a cuter way to show the commits in upstream that aren't in my local branch
git shortlog ..upstream/master

# summarize the differences in upstream since we diverged (not
including my own changes)
git diff --stat upstream/master..

# summarize the differences between my branch and upstream (including
my changes and theirs)
# (note: three dots)
git diff --stat ...upstream/master

Have fun,

Avery

Re: Git workflow with upstream repository

From: Avery Pennarun <hidden>
Date: 2016-06-15 22:49:10

On Fri, Jul 23, 2010 at 9:43 PM, Bradley Wagner
[off-list ref] wrote:
Thanks, I'll check those out! So, I take it there is not a way to get
a simple message like what git status tells you when you're local
branch is behind the remote branch:

"Your branch is behind 'origin/master' by 1 commit, and can be fast-forwarded."
As far as I know, any given branch can only "track" one particular
branch, and that message is only generated relative to the branch
you're tracking.  You can adjust which one you're tracking by editing
.git/config.
Is there even a concept of a fast-forward merge when pulling from a
remote repo that is not the remote to which your branches are
tracking?
Yes.  Tracking branches are really just a notational convenience.  In
fact, they don't do very much more than generating the above message.
(The other thing they do is make 'git pull' do something by default
when you don't give it any other parameters.)

You might enjoy this article:
http://eagain.net/articles/git-for-computer-scientists/
Is it possible to rebase based on a branch that is *not* the branch
you're currently tracking? Is that what the --onto flag is for?
Yes, it's possible.  The question of when you do or don't need the
--onto option is a little more complex than that, but yes, that's
what's it's for, more or less.

Have fun,

Avery
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help