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 --
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 --
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, <johan@herland.net> www.herland.net --
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 --
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
--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 'm...I belive that should be `update-ref refs/heads/master origin/master`, Try `rm .git/master`. -- larsh --
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 --
Looks good, AFAICS Have fun! :) ...Johan -- Johan Herland, <johan@herland.net> www.herland.net --
| Greg KH | [GIT PATCH] driver core patches against 2.6.24 |
| Tim Tassonis | reiser4 for 2.6.27-rc1 |
| monstr | [PATCH 20/52] [microblaze] heartbeat file |
| Tarkan Erimer | Re: Dual-Licensing Linux Kernel with GPL V2 and GPL V3 |
git: | |
| David Kastrup | Terminology question about remote branches. |
| Pascal Obry | git svn and the post-receive hook |
| Giuseppe Bilotta | git-svn tags and branches |
| Thomas Glanzmann | fatal: ambiguous argument 'HEAD': unknown revision or path not in the working tree. |
| GVG GVG | ssh_exchange_identification: Connection closed by remote host |
| Andrei Pirvan | apache 1.3.29 + PHP 5.2.6 on OpenBSD 4.4 |
| Richard Stallman | Real men don't attack straw men |
| Jason Dixon | DCBSDCon 2009 - Three Weeks Left |
| David Miller | Re: [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
| John P Poet | Realtek 8111C transmit timed out |
| Gerrit Renker | [PATCH 26/37] dccp: Integration of dynamic feature activation - part 1 (socket set... |
| Joerg Roedel | [PATCH 08/10] x86: add checks for sync_single* code |
