30

My server already runs IIS on TCP ports 80 and 443. I want to make a centralized "push/pull" Git repository available to all my team members over the Internet.

So I should use HTTP or HTTPS.

But I cannot use Apache because of IIS already hooking up listening sockets on ports 80 and 443! Is there any way to publish a Git repository over IIS? Does Git use WebDAV?

Update. It seems that Git HTTP installation is read-only. That's sad. I intended to keep the stable branch on a build server and redeploy using a hook on push. Does anyone see a workaround besides using SVN for that branch?

Boann
  • 48,794
  • 16
  • 117
  • 146
Artem Tikhomirov
  • 21,497
  • 10
  • 48
  • 68
  • Of the three suggestions in the selected answer, what solution did you end up using? How has it worked out for you? I'm in a similar situation now and would love a recommendation. – Andy Oct 21 '11 at 17:35
  • 1
    @Andy We've used OpenSSH/msysgit on Windows to setup standard SSH repository. Now (at different company) we use small Debian VM with SSH/gitosis. However it's a bit harder to backup. – Artem Tikhomirov Oct 27 '11 at 06:40
  • My project [WebGit.NET](https://github.com/otac0n/WebGitNet) has been around for a while, but we just released version 2.0 Current Features: - Push/Pull over HTTP/HTTPS - Commit Log - Graph view - Plugin infrastructure - Impact plugin (shows users and their contribution impact) - Syntax highlighting via SHJS - Raw file downloads - Image viewer for images in the repository Things we are planning on supporting in the future: - Issue tracker plugin - Whatever *you* want! (Add a feature request on GitHub, and we'll see what we can do!) – John Gietzen Apr 15 '12 at 05:11
  • @Artem Tikhomirov your really rescued me by `Update. Seems that git HTTP installation is read-only one.` – it3xl Apr 30 '17 at 17:13

7 Answers7

31

Bonobo Git Server

https://bonobogitserver.com/


GitAspx - By Jeremy Skinner

https://github.com/JeremySkinner/git-dot-aspx/

https://github.com/JeremySkinner/git-dot-aspx/downloads

Install Instructions

https://www.jeremyskinner.co.uk/2010/10/19/gitaspx-0-3-available/


Git Web

https://gitweb.codeplex.com/


WebGitNET

https://github.com/otac0n/WebGitNet


Alternatively ... (non-IIS, but highly recommend, free and open-source)

Gitea (fork of Gogs): https://gitea.io

Gogs: https://gogs.io

SCM Manager allows you to easily set up revision control endpoints for Git, Hg, and SVN under the same hosting process. HTTP/HTTPS is supported along with built-in user authentication.

https://www.scm-manager.org
https://bitbucket.org/sdorra/scm-manager/

Boann
  • 48,794
  • 16
  • 117
  • 146
Brian Chavez
  • 8,048
  • 5
  • 54
  • 47
6

Git supposedly supports webdav, and should work with any webdav server. However, it's really slow compared to the native git protocols.

http://www.kernel.org/pub/software/scm/git/docs/howto/setup-git-server-over-http.txt

apenwarr
  • 10,838
  • 6
  • 47
  • 58
3

Today Git ain't too bad on Windows these days.

And if you want to use SVN on port 443 and/or 80 when IIS is already using it, try the tool at http://gstoolkit.codeplex.com/wikipage?title=SvnReverseProxy&ProjectName=gstoolkit which is a reverse proxy that allows IIS to transparently pass thru SVN to a back-end VisualSVN server (running on the same machine on port 8080).

I'm still trying to get WebDAV and Git working on Windows though. (either by Apache's or IIS's WebDAV).

Garrett Serack
  • 943
  • 7
  • 17
1

There is a way to setup Git with MSysGit without cygwin. http://java2cs2.blogspot.com/2010/03/setup-git-server-on-windows-machine.html

louis
  • 79
  • 3
1

It's possible to run a Git Smart HTTP server (supporting both push and pull from remote clients over HTTP) on Windows without any extra dependencies besides IIS and Git.

When you install Git, it includes an executable called git-http-backend.exe which implements the Smart HTTP protocol which is designed to run through CGI on any web server.

You can secure the Git server using HTTP Basic Authentication and HTTPS. You can use Windows accounts and file/folder permissions to control access rights to individual repositories.

Full detailed instructions are here: How to run a Git server on Windows with IIS.

Luke S
  • 93
  • 8
0

Try this instruction that uses SCM-Manager and IIS: Hosting Git, SVN and Hg (Mercurial) repositories on Windows with IIS

Yaroslav
  • 1,241
  • 10
  • 13
0

https://github.com/projectkudu/kudu is the engine behind deployments on Azure. This might help for anybody still asking this question...

Mladen Mihajlovic
  • 6,095
  • 7
  • 40
  • 55