How can I find the location of origin/master in git, and how do I change it?

git, git-push, git-remote

Solution

`1.` Find out where Git thinks 'origin/master' is using `git-remote`

git remote show origin

..which will return something like..

* remote origin
  URL: me@remote.example.com:~/something.git
  Remote branch merged with 'git pull' while on branch master
    master
  Tracked remote branch
    master

A remote is basically a link to a remote repository. When you do..

git remote add unfuddle me@unfuddle.com/myrepo.git
git push unfuddle

..git will push changes to that address you added. It's like a bookmark, for remote repositories.

When you run `git status`, it checks if the remote is missing commits (compared to your local repository), and if so, by how many commits. If you push all your changes to "origin", both will be in sync, so you wont get that message.

`2.` If it's somewhere else, how do I turn my laptop into the 'origin/master'?

There is no point in doing this. Say "origin" is renamed to "laptop" - you never want to do `git push laptop` from your laptop.

If you want to remove the origin remote, you do..

git remote rm origin

This wont delete anything (in terms of file-content/revisions-history). This will stop the "your branch is ahead by.." message, as it will no longer compare your repository with the remote (because it's gone!)

One thing to remember is that there is nothing special about `origin`, it's just a default name git uses.

Git does use `origin` by default when you do things like `git push` or `git pull`. So, if you have a remote you use a lot (Unfuddle, in your case), I would recommend adding unfuddle as "origin":

git remote rm origin
git remote add origin git@subdomain.unfuddle.com:subdomain/abbreviation.git

or do the above in one command using set-url:

git remote set-url origin git@subdomain.unfuddle.com:subdomain/abbreviation.git

Then you can simply do `git push` or `git pull` to update, instead of `git push unfuddle master`

Problem

I'm a Git newbie. I recently moved a Rails project from Subversion to Git. I followed the tutorial here: http://www.simplisticcomplexity.com/2008/03/05/cleanly-migrate-your-subversion-repository-to-a-git-repository/ I am also using unfuddle.com to store my code. I make changes on my Mac laptop on the train to/from work and then push them to unfuddle when I have a network connection using the following command: ``` git push unfuddle master ``` I use Capistrano for deployments and pull code from the unfuddle repository using the master branch. Lately I've noticed the following message when I run "git status" on my laptop: ``` # On branch master # Your branch is ahead of 'origin/master' by 11 commits. # nothing to commit (working directory clean) ``` And I'm confused as to why. I thought my laptop was the origin... but don't know if either the fact that I originally pulled from Subversion or push to Unfuddle is what's causing the message to show up. How can I: - Find out where Git thinks 'origin/master' is? - If it's somewhere else, how do I turn my laptop into the 'origin/master'? - Get this message to go away. It makes me think Git is unhappy about something. My mac is running Git version 1.6.0.1. When I run `git remote show origin` as suggested by dbr, I get the following: ``` ~/Projects/GeekFor/geekfor 10:47 AM $ git remote show origin fatal: '/Users/brian/Projects/GeekFor/gf/.git': unable to chdir or not a git archive fatal: The remote end hung up unexpectedly ``` When I run `git remote -v` as suggested by Aristotle Pagaltzis, I get the following: ``` ~/Projects/GeekFor/geekfor 10:33 AM $ git remote -v origin /Users/brian/Projects/GeekFor/gf/.git unfuddle git@spilth.unfuddle.com:spilth/geekfor.git ``` Now, interestingly, I'm working on my project in the `geekfor` directory but it says my origin is my local machine in the `gf` directory. I believe `gf` was the temporary directory I used when converting my project from Subversion to Git and probably where I pushed to unfuddle from. Then I believe I checked out a fresh copy from unfuddle to the `geekfor` directory. So it looks like I should follow dbr's advice and do: ``` git remote rm origin git remote add origin git@spilth.unfuddle.com:spilth/geekfor.git ```

Original source

Related problems