Question

How can I setup a git repository on a local system ? (I am on a windoze box)

This is the setup I am trying to achieve: (everything is on my local machine)

  • host folder (which acts like central repository)
  • client folder

I want to do all my dev in the client folder. Once I am done, I'd like to push it to the host folder.


This is what I've done: (using git bash on windows)

  • cd d:/adinsert
  • mkdir host
    • cd host
    • git init

cd c:/

  • mkdir client
    • cd client
    • git init
    • git remote add origin d:/host // Added some files in client folder and commited them
    • git push origin master

When I push stuff to origin, git spits a lot of remote errors. However, when I make my host a bare git, it pushes successfully.

I don't understand the difference between regular git and bare git. From the manual, all I understood was, bare git is used for storing deltas and when you don't want to store original files. However, I'd like to store the files in host. How can I do that ?

Was it helpful?

Solution

The difference between a "regular git" and a "bare git" is that a bare repository does not have a working directory. You should never push into a regular git repository, as you may run into problems that are hard to recover from. Always push into a bare repository.

If you want to have a "host" where copies of your files do appear, then set up a third repository, cloning from the host one. Whenever you want to update the host files:

  • git push from your working directory to update the main repository
  • git pull from your host directory to pull from the origin

You can even set up a post-commit hook on the bare repository to automatically do the second step.

OTHER TIPS

In your client directory you have will notice a .git directory. A bare version is basically just that .git directory contents without a working copy.

Easiest thing to do would be to clone it (vs trying to setup another repository):

From c:/ call:

git clone d:/host client

This says clone the 'host' repo and store it under a folder called 'client'.

Don't create a new git repo in the client folder, clone the host repo

cd client
git clone d:/adinsert/host
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top