threads / discuss / 7397

Question regarding: git pull --no-commit origin

Subject: Question regarding: git pull --no-commit origin

## tl;dr

5 messages between Mar 25, 2007 and Mar 26, 2007.

replies: 4people: 3as markdown or json

Geoff Russell· Mar 25, 2007, 23:32 UTC · lore
Hi,
I'm using version 1.5.0.5
I do: git pull --no-commit origin
Receive messages ending in:
        ...
       Updating 6a29cdd..b7ba33d
       Fast forward
       interface/testfile |    1 +
       1 files changed, 1 insertions(+), 0 deletions(-)
       create mode 100644 interface/testfile

My working directory is correctly updated. I assume that I can make further mods and then commit.

However when I do: git commit -a
I'm told: nothing to commit (working directory clean)
Am I misunderstanding something?

Cheers, Geoff Russell

Shawn O. Pearce· Mar 25, 2007, 23:38 UTC · re: Geoff Russell · lore

Re: Question regarding: git pull --no-commit origin

Geoff Russell <geoffrey.russell@gmail.com> wrote:
Show 10 quoted lines
> I do: git pull --no-commit origin
> 
> Receive messages ending in:
> 
>        ...
>       Updating 6a29cdd..b7ba33d
>       Fast forward
>       interface/testfile |    1 +
>       1 files changed, 1 insertions(+), 0 deletions(-)
>       create mode 100644 interface/testfile
...
Show 5 quoted lines
> However when I do: git commit -a
> 
> I'm told: nothing to commit (working directory clean)
> 
> Am I misunderstanding something?

The pull was strictly a fast-forward. No merge commit was necessary to record the merge, so we didn't actually honor the --no-commit argument.

In other words, your current branch did not contain any commits that were not in the origin branch you were pulling from. So a real merge wasn't required here.

-- 
Shawn.
Geoff Russell· Mar 26, 2007, 01:16 UTC · re: Shawn O. Pearce · lore

Re: Question regarding: git pull --no-commit origin

On 3/26/07, Shawn O. Pearce <spearce@spearce.org> wrote:
Show 25 quoted lines
> Geoff Russell <geoffrey.russell@gmail.com> wrote:
> > I do: git pull --no-commit origin
> >
> > Receive messages ending in:
> >
> >        ...
> >       Updating 6a29cdd..b7ba33d
> >       Fast forward
> >       interface/testfile |    1 +
> >       1 files changed, 1 insertions(+), 0 deletions(-)
> >       create mode 100644 interface/testfile
> ...
> > However when I do: git commit -a
> >
> > I'm told: nothing to commit (working directory clean)
> >
> > Am I misunderstanding something?
>
> The pull was strictly a fast-forward.  No merge commit was necessary
> to record the merge, so we didn't actually honor the --no-commit
> argument.
>
> In other words, your current branch did not contain any commits
> that were not in the origin branch you were pulling from.  So
> a real merge wasn't required here.

Thanks Shawn, but my situation is I have the MASTER repository and I'm pulling from a TEST repository. I want to double check the updates other people have done on the TEST repository, and if they are okay, then commit them.

If --no-commit won't let me do this then perhaps I need something like:
          git pull origin:testing
          git checkout testing
           .... test
          git checkout master ; git pull . testing
i.e., make a branch for the test changes and then merge this branch.

Cheers, Geoff

>
> --
> Shawn.
>
Jeff King· Mar 26, 2007, 01:47 UTC · re: Geoff Russell · lore

Re: Question regarding: git pull --no-commit origin

On Mon, Mar 26, 2007 at 10:46:09AM +0930, Geoff Russell wrote:
Show 6 quoted lines
> If --no-commit won't let me do this then perhaps I need something like:
> 
>          git pull origin:testing
>          git checkout testing
>           .... test
>          git checkout master ; git pull . testing

Close. Remember that a pull is basically a fetch + merge; so your first command is just the fetch:

  # fetches everything from origin
  git fetch
  # see what they have that we don't
  git whatchanged HEAD..origin/testing
  # check out their code in more detail
  git checkout origin/testing
  # or even make our own branch in case we have tweaks to make
  git checkout -b testing origin/testing
  # and once we're OK, do the merge
  git checkout master; git merge origin/testing

All of that assumes git 1.5 or greater, which uses the separate remote layout and has some interface improvements. For older versions, their 'testing' branch will be pulled into your 'testing' branch, and I believe you will need to 'git pull . testing' to merge it.

-Peff
Geoff Russell· Mar 26, 2007, 02:17 UTC · re: Jeff King · lore

Re: Question regarding: git pull --no-commit origin

On 3/26/07, Jeff King <peff@peff.net> wrote:
Show 30 quoted lines
> On Mon, Mar 26, 2007 at 10:46:09AM +0930, Geoff Russell wrote:
>
> > If --no-commit won't let me do this then perhaps I need something like:
> >
> >          git pull origin:testing
> >          git checkout testing
> >           .... test
> >          git checkout master ; git pull . testing
>
> Close.  Remember that a pull is basically a fetch + merge; so your first
> command is just the fetch:
>
>   # fetches everything from origin
>   git fetch
>   # see what they have that we don't
>   git whatchanged HEAD..origin/testing
>   # check out their code in more detail
>   git checkout origin/testing
>   # or even make our own branch in case we have tweaks to make
>   git checkout -b testing origin/testing
>   # and once we're OK, do the merge
>   git checkout master; git merge origin/testing
>
> All of that assumes git 1.5 or greater, which uses the separate remote
> layout and has some interface improvements. For older versions, their
> 'testing' branch will be pulled into your 'testing' branch, and I
> believe you will need to 'git pull . testing' to merge it.
>
> -Peff
>
Ok, that's all nice and clear now. Many thanks.
Geoff.

← back to recent threads