git pull/merge master on other branch

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

git pull/merge master on other branch

From: SungHyun Nam <hidden>
Date: 2016-06-15 22:44:35

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?

Thanks,
namsh

Re: git pull/merge master on other branch

From: Johan Herland <hidden>
Date: 2016-06-15 22:44:35

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).


Have fun! :)

...Johan

-- 
Johan Herland, [off-list ref]
www.herland.net

Re: git pull/merge master on other branch

From: SungHyun Nam <hidden>
Date: 2016-06-15 22:44:35

Johan Herland wrote, at 5/9/2008 3:24 PM:
On Friday 09 May 2008, SungHyun Nam wrote:
quoted
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).
I tested and it seems work fine.

$ mkdir repo; cd repo; git init; echo 'aaa' > a; git add .; git ci -m 
'aaa'; cd ..
$ git clone repo t; cd t; git co -b test; cd ..
$ cd repo; echo 'bbb' >> a; git ci -m 'bbb' a; cd ..
$ git clone t t2; cd t2; git remote add central ../repo; git pull 
central master; git push origin; cd ..
$ cd t; git log; git log master; git rebase master

Did I do correctly?

Thanks,
namsh

Re: git pull/merge master on other branch

From: Johan Herland <hidden>
Date: 2016-06-15 22:44:35

On Friday 09 May 2008, SungHyun Nam wrote:
Johan Herland wrote, at 5/9/2008 3:24 PM:
quoted
On Friday 09 May 2008, SungHyun Nam wrote:
quoted
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).
I tested and it seems work fine.

$ mkdir repo; cd repo; git init; echo 'aaa' > a; git add .; git ci -m
'aaa'; cd ..
$ git clone repo t; cd t; git co -b test; cd ..
$ cd repo; echo 'bbb' >> a; git ci -m 'bbb' a; cd ..
$ git clone t t2; cd t2; git remote add central ../repo; git pull
central master; git push origin; cd ..
$ cd t; git log; git log master; git rebase master

Did I do correctly?
Looks good, AFAICS


Have fun! :)

...Johan

-- 
Johan Herland, [off-list ref]
www.herland.net

Re: git pull/merge master on other branch

From: Kevin Ballard <hidden>
Date: 2016-06-15 22:44:35

On May 9, 2008, at 1:24 AM, Johan Herland wrote:
On Friday 09 May 2008, SungHyun Nam wrote:
quoted
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

-Kevin Ballard

-- 
Kevin Ballard
http://kevin.sb.org
kevin@sb.org
http://www.tildesoft.com

Re: git pull/merge master on other branch

From: SungHyun Nam <hidden>
Date: 2016-06-15 22:44:36

Kevin Ballard wrote, at 5/10/2008 2:16 AM:
 > 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

It seems it worked, but I see a warning message "refname 'master'
is ambiguous." Can I fix this warning message?

[test] ~/tmp/t[52]$ git fetch origin
remote: Counting objects: 5, done.
remote: Total 3 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.
 From /d/user/namsh/tmp/repo/
    6e13bb5..8d1c620  master     -> origin/master
[test] ~/tmp/t[53]$ git update-ref master origin/master
[test] ~/tmp/t[69]$ git log master
warning: refname 'master' is ambiguous.
commit a358783b78facffb9a8f69d2189aa716495d95ba
..

[test] ~/tmp/t[54]$ git rebase master
warning: refname 'master' is ambiguous.
warning: refname 'master' is ambiguous.
First, rewinding head to replay your work on top of it...
Fast-forwarded test to master.

regards,
namsh

Re: git pull/merge master on other branch

From: Kelvie Wong <hidden>
Date: 2016-06-15 22:44:36

On 5/8/08, SungHyun Nam [off-list ref] wrote:
 How I can pull origin into master without switching to master
 branch?

 Thanks,
 namsh
To do this, one would use the "push" subcommand, with "." as the repository.

git push . origin/master:master

I could have sworn I answered someone the exact same thing a while ago...
-- 
Kelvie Wong

Re: git pull/merge master on other branch

From: Lars Hjemli <hidden>
Date: 2016-06-15 22:44:36

On Tue, May 13, 2008 at 4:22 AM, SungHyun Nam [off-list ref] wrote:
Kevin Ballard wrote, at 5/10/2008 2:16 AM:

 > 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 belive that should be `update-ref refs/heads/master origin/master`,
otherwise you'll get this error:
 It seems it worked, but I see a warning message "refname 'master'
 is ambiguous." Can I fix this warning message?
Try `rm .git/master`.

--
larsh

Re: git pull/merge master on other branch

From: Brandon Casey <hidden>
Date: 2016-06-15 22:44:36

Kevin Ballard wrote:
On May 9, 2008, at 1:24 AM, Johan Herland wrote:
quoted
On Friday 09 May 2008, SungHyun Nam wrote:
quoted
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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help