社内LANの閉じた環境で使用する Git サーバを構築するには？


初めてAndroidの開発に携わっています。  
Gitを使うことになったのですがバージョン管理システムに慣れておらず苦労している段階です。

今回の質問はGitで使用するサーバについてです。

Gitのクライアントソフト (Git For Windows)
のインストールまでは出来たのですが、サーバを何にするか決めあぐねています。皆さんはどのようなサーバソフトを使用しているのでしょうか。

**想定している条件**

・ソースは外に出せないので、サーバは社内LANに設置 (なのでGitHubは使用できません)  
・サーバは Windows Server 2012, IIS7.5, SQL Server 2012R2  
・日本語が文字化けしないこと  
・なるべく情報量の多いソフトであること

正直言ってTeam Foundation Serverしか使用経験が無く、ソースをコミットしたり、取得するのに使った程度です
(後はたまにPLからTFS内蔵のチャットで指示が来るくらいです)

皆さんの使用しているGitのサーバでお勧めは無いでしょうか。




TFS や Subversion 等と異なり、Git
をはじめとする分散型バージョン管理システムは各々がリポジトリを所有し、それを同期することで共同作業を行います。そのため、いわゆる「サーバーソフトウェア」というものは必要ありません。

Git
の場合は「作業ディレクトリ」と「履歴等を格納する.gitディレクトリ」をセットにしてリポジトリとして扱いますが、作業ディレクトリを持たない「bareリポジトリ」を作ることができるので、これを中央サーバのように扱うことが多いです。Git
のリポジトリはただのディレクトリですから、これをSSHやSambaで外部からアクセスできるようにして、そことローカルとの間で履歴を push/pull
する、という流れになります。

[Git チュートリアルとトレーニング| Atlassian](https://www.atlassian.com/ja/git/)

Github、Bitbucketといったサービスではこういった bare
リポジトリの管理をブラウザ上で行えるほか、BTSなどの機能を備えています。オンプレミスで動作するものも、Atlassian
Stash、GitLab、GitBucket等が存在します。

> サーバはWindowsServer2012/IIS7.5/SQL Server2012R2

Windows
上で直接動かすということであれば、Javaで動作するStashやGitBucketがお手軽なのかなとは思います。が、チームメンバー間で履歴を同期したいだけであれば、bareリポジトリをサーバー上に作成し、そのディレクトリを共有するだけで可能です。

[Windows PCをGitのリモートリポジトリとして使用する方法 - MoonMt.Lab IT開発技術
調査報告書](http://d.hatena.ne.jp/MoonMtLab/20140314/1394807213)




TFS や Subversion 等と異なり、Git
をはじめとする分散型バージョン管理システムは各々がリポジトリを所有し、それを同期することで共同作業を行います。そのため、いわゆる「サーバーソフトウェア」というものは必要ありません。

Git
の場合は「作業ディレクトリ」と「履歴等を格納する.gitディレクトリ」をセットにしてリポジトリとして扱いますが、作業ディレクトリを持たない「bareリポジトリ」を作ることができるので、これを中央サーバのように扱うことが多いです。Git
のリポジトリはただのディレクトリですから、これをSSHやSambaで外部からアクセスできるようにして、そことローカルとの間で履歴を push/pull
する、という流れになります。

[Git チュートリアルとトレーニング| Atlassian](https://www.atlassian.com/ja/git/)

Github、Bitbucketといったサービスではこういった bare
リポジトリの管理をブラウザ上で行えるほか、BTSなどの機能を備えています。オンプレミスで動作するものも、Atlassian
Stash、GitLab、GitBucket等が存在します。

> サーバはWindowsServer2012/IIS7.5/SQL Server2012R2

Windows
上で直接動かすということであれば、Javaで動作するStashやGitBucketがお手軽なのかなとは思います。が、チームメンバー間で履歴を同期したいだけであれば、bareリポジトリをサーバー上に作成し、そのディレクトリを共有するだけで可能です。

[Windows PCをGitのリモートリポジトリとして使用する方法 - MoonMt.Lab IT開発技術
調査報告書](http://d.hatena.ne.jp/MoonMtLab/20140314/1394807213)

