git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: git pull/merge master on other branch

From
Brandon Casey <casey@nrlssc.navy.mil>
Date
May 13, 2008, 17:24 UTC
Message-ID
<4829CECF.1090900@nrlssc.navy.mil>
In-Reply-To
<8C649BDA-41CA-4105-86C5-103B4A8BEEC1@sb.org>
Kevin Ballard wrote:
Show 30 quoted lines
> On May 9, 2008, at 1:24 AM, Johan Herland wrote:
> 
>> On Friday 09 May 2008, SungHyun Nam wrote:
>>> Hello,
>>>
>>> If I am on a branch (reguarly rebased), I don't want to switch to
>>> master branch, but merge origin into master.
>>> If I switch to master and pull and switch to branch, I have to
>>> rebuild almost of sources.
>>>
>>> How I can pull origin into master without switching to master
>>> branch?
>>
>> You can't; merging requires use of the working tree (to resolve
>> conflicts).
>>
>> However, what you can do is make a local clone of your project (cheap,
>> because it just hardlinks files from the original repo), and checkout the
>> master branch in the clone, perform the merge (after having set up the
>> same
>> origin and retrieved its contents), and then fetch (or push) the
>> result back
>> into the original repo (remember: "fetch" instead of "pull", since the
>> latter will initiate a merge with your current branch).
> 
> 
> If you know the pull will just be a fast-foward, then you can do
> something like
> 
>   git fetch origin && git update-ref master origin/master
I recommend against using update-ref...

and instead suggest using fetch to do all of the work. Some variation of:

    git fetch origin master:master

This will only fast-forward the master branch based on the remote origin's master branch. update-ref will blindly overwrite the master ref, if you make a mistake and its not a fast-forward, you just lost some commits.

The above doesn't update your remotes though, maybe the following would be correct, but I haven't tried it.

   git fetch origin && git fetch . remotes/origin/master:master

Also, I'm surprised no one mentioned the git-new-workdir script in the contrib directory. It allows you to have multiple work directories which share and update a single repository.

You could
    git-new-workdir <path_to_repo> <path_to_newworkdir> master
    cd <path_to_newworkdir>
    git pull
-brandon
Previous: Lars HjemliNext: Kelvie Wong
Message 8 of 9 in “git pull/merge master on other branch”
  1. SungHyun NamMay 9, 2008
  2. Johan HerlandMay 9, 2008
  3. SungHyun NamMay 9, 2008
  4. Johan HerlandMay 9, 2008
  5. Kevin BallardMay 9, 2008
  6. SungHyun NamMay 13, 2008
  7. Lars HjemliMay 13, 2008
  8. Brandon CaseyMay 13, 2008
  9. Kelvie WongMay 13, 2008

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.