Re: How to jump between two repositories ...
- From
- Väinö Järvelä <v@pp.inet.fi>
- Date
- Dec 5, 2007, 06:20 UTC
- Message-ID
- <3DD4D3BA-67B3-4AFC-AD24-799384D54408@pp.inet.fi>
- In-Reply-To
- <C6AF7922-B2F7-42EB-B5DD-25353BC0AF2A@gmail.com>
On Dec 5, 2007, at 07:59, g2 wrote:
Show 25 quoted lines
> I am currently working on some code at the office that I also want > to work with at home. Seems like a good candidate for git. So I > created a repository at work and did a "git clone" at home. I've run > into some strange behaviour that I don't understand and would > appreciate if someone can clarify for me. > > Imagine this scenario. At work: > git init > edit test.c > git add test.c > git commit > > Then at home: > git clone <work git url> > edit test.c > git commit -a > git push > > At this point, I wanted to push my changes back to my work > repository so I can continue work the next day. So at home, I did a > git push. I expect that my work repository has the newest material, > but I find that when I do "git status" at work the next day, it > tells me that my test.c is "modified" and has already staged it for > commit. I need to do a "git reset" followed by "git checkout" to > update my work folder to the latest stuff.
Did you clone a bare repository and push to it?
Here is an excerpt from Git User's Manual: "Note that the target of a "push" is normally a bare repository. You can also push to a repository that has a checked-out working tree, but the working tree will not be updated by the push. This may lead to unexpected results if the branch you push to is the currently checked- out branch!"
So to push to your work repository, you should create an intermediary repository between the work and home repositories. You can create it by running: $ git clone --bare /git/work/ /git/work.git/
Then you clone normally from the bare repository and pushing to it works fine. After you have pushed your changes to the bare repository, you'll have to pull them to the work repository to get the updates, just like you would do with any public repository.
Another option would be to pull from your home repository to the work repository, if you can access your home computer from the work computer.
-- Väinö