# Re: [git-users] Having trouble understanding how Git works?

On Thu, 13 Jun 2013 08:40:56 -0700 (PDT)
vmhatup <vmha...@gmail.com> wrote:

> I'm trying to integrate some type of source code versioning. I come
> from a VSS background, where our workstations would connect to a
> server and 'check out' a solution/project into my workstation.
> Essentially, 'check out' the code into my PC and then ('check in')
> back to the server.
>
> Anyways, I'm trying to understand how Git works. I assumed that I
> would install Git in the server (where all source code will reside),

Git is a DVCS, where the "D" stands for "decentralized", so all the
source code resides in all the local repositories your developers would
have.  It also might reside in any number of "server" repositories but
they are not in any way "special" except according a policy you
might implement.

> and then I'd install an add-on to VS2010 in my workstation to connect
> to the server. From VS2010 I would add my solution to the server, and
> do checkins/checkouts.
>
> So, I installed this version of Git in the
> asks me to create a new repository.

I have no idea what "box" is being talked about here.

> What I don't seem to understand is how I can connect locally (from my
> VS2010) to that server.

Unfortunately, here comes the pain.  Since Git is a DVCS (see above) it
does not implement client/server architecture by itself: all it has is
special "client" support to access another Git instance over a set of
network protocols (namely SSH and HTTP[S]) and special "server" support
to talk to a Git client, and this code does not know which protocol is
used to carry out the exchange.  This means that setting up server-side
Git requires setting up something which will serve the "enclosing
protocol" access, like SSH or HTTP[S]".

Setting up an SSH server on Windows is possible but requires a trained
sysadmin.  Somehow I feel you'd better skip this for now.

Setting up an HTTP server is supposedly easier but making it work OK
with Git is not.  You might consider installing [1] under IIS.

Yet another alternative is to not use stock Git on the server side and
instead turn to a turn-key solution, like [2].

The third alternative is to not use Windows for the server side and
instead use a POSIX environment for this -- with supposedly the most
obvious choice for this being a Linux-based OS (I would personally
recommend Debian).  This, again, requires a person with the necessary
skills.

And yet another alternative is *not* having Git on the server side at
that is, on a Windows share which could be provided by your Windows
server. This does not require any special setup on the client computers
except using a special URL for accessing the remote repository, like

file:////server/share/path/to/the/repository

This setup requires accessig the share to use pass-through
Windows client authentication, that is, merely navigating the

\\server\share\path\to\the\repository

UNC path using Windows Explorer must not ask the user for
their credentials, otheriwse it's not gonna easily work with Git.

> In my workstation (VS2010), I installed Git Source Control Provider,
> but I don't see any option that lets me connect to the server.

Regarding this, I, personally have nothing to say as I've never used
with "plain" Git first is advised to gain understanding of how things
work.

1. http://gitweb.codeplex.com/
2. http://gitblit.com/

--
You received this message because you are subscribed to the Google Groups "Git
for human beings" group.
To unsubscribe from this group and stop receiving emails from it, send an email