Created
June 27, 2009 18:31
-
-
Save freephile/137071 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
I forked the drupal project from git://github.com/mikl/drupal.git (my "origin") so that I could start with official upstream drupal sources. I then created my own private remote repository that I can push to (iic-drupal), and have made a number of commits (using a different computer). Now I'm on a machine where I want to pull from iic-drupal, but if I do 'git pull' it complains (see below) This gist describes how I fixed my configuration, and clears up for me how in a DISTRIBUTED VCS, you need to tell the system which local branch you are working with, and equally important, which remote AND branch on that remote you want to pull code from. | |
$ cat .git/config | |
[core] | |
repositoryformatversion = 0 | |
filemode = true | |
bare = false | |
logallrefupdates = true | |
[remote "origin"] | |
url = /home/greg/work/gr/drupal/.git | |
fetch = +refs/heads/*:refs/remotes/origin/* | |
[branch "master"] | |
remote = origin | |
merge = refs/heads/master | |
$ git branch | |
* iic-dev | |
master | |
$ git pull | |
From git://github.com/mikl/drupal | |
99fdab0..eaeb980 CVS -> origin/CVS | |
8d31470..2d0b3a5 DRUPAL-5 -> origin/DRUPAL-5 | |
f4ab67a..adc30ae DRUPAL-6 -> origin/DRUPAL-6 | |
99fdab0..eaeb980 master -> origin/master | |
From git://github.com/mikl/drupal | |
* [new tag] DRUPAL-5-17 -> DRUPAL-5-17 | |
* [new tag] DRUPAL-5-18 -> DRUPAL-5-18 | |
* [new tag] DRUPAL-6-11 -> DRUPAL-6-11 | |
* [new tag] DRUPAL-6-12 -> DRUPAL-6-12 | |
You asked me to pull without telling me which branch you | |
want to merge with, and 'branch.iic-dev.merge' in | |
your configuration file does not tell me either. Please | |
name which branch you want to merge on the command line and | |
try again (e.g. 'git pull <repository> <refspec>'). | |
See git-pull(1) for details on the refspec. | |
If you often merge with the same branch, you may want to | |
configure the following variables in your configuration | |
file: | |
branch.iic-dev.remote = <nickname> | |
branch.iic-dev.merge = <remote-ref> | |
remote.<nickname>.url = <url> | |
remote.<nickname>.fetch = <refspec> | |
# tell git to pull (fetch and merge into the local branch) code from the "iic-drupal" remote, using the "iic-dev" branch found there. | |
$ git pull iic-drupal iic-dev | |
From git@svn.iic.harvard.edu:repositories/drupal | |
* branch iic-dev -> FETCH_HEAD | |
Updating 6a9bc15..b03005b | |
Checking out files: 100% (63407/63407), done. | |
Fast forward | |
$ git branch -a | |
* iic-dev | |
master | |
iic-drupal/iic-dev | |
iic-drupal/master | |
origin/CVS | |
origin/DRUPAL-3-0 | |
origin/DRUPAL-3-00 | |
origin/DRUPAL-4-0 | |
origin/DRUPAL-4-1 | |
origin/DRUPAL-4-2 | |
origin/DRUPAL-4-3 | |
origin/DRUPAL-4-4 | |
origin/DRUPAL-4-5 | |
origin/DRUPAL-4-6 | |
origin/DRUPAL-4-7 | |
origin/DRUPAL-5 | |
origin/DRUPAL-6 | |
origin/HEAD | |
origin/drop | |
origin/master | |
# tell my local repository that the local branch "iic-dev" has a remote repository to track called "iic-drupal" (already defined in "remotes") | |
$ git config branch.iic-dev.remote iic-drupal | |
# tell my local repository that the local development branch "iic-dev" should be merged with code fetched from the remote development branch (also called "iic-dev") | |
$ git config branch.iic-dev.merge iic-dev | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment