具体的にどんな運用にしたか
開発はWindowsクライアントアプリで、VB.NET 4.0製です。
開発機もWindowsだし、ファイルサーバなど各種サーバーもすべてWindowsです。
リモートリポジトリ
リモートリポジトリはファイルサーバーに作成することにしました。
リポジトリの共有方法はhttp、ssh、git などいろいろありますが、試行錯誤の結果普通にファイル共有することにしました。
Windowsで社内LANならば一番お手軽ではないでしょうか。sshとかめんどくさいし。
つまり、ファイルサーバーに共有ディレクトリを作成してリポジトリを入れておき、
開発者は //server-name/shared-directory/project-name.git にアクセスします。
リポジトリの単位
VSSで慣れ親しんだ形を優先して、ベースとなるバージョンで1つのリポジトリ+各ユーザーカスタマイズ版ごとに1つのリポジトリのような構成にしました。
Gitは、異なるリポジトリ間でもマージ処理ができるため今のところ問題ないです。
ベースのリポジトリで修正→各ユーザーカスタマイズリポジトリへマージ のように運用してます。
git-flow
git-flowがフィットしそうだったので導入しました。
何でもかんでもmasterにpushされると、リリースのタイミングが図れないのです。
プログラマはfeatureとhotofixだけ操作するような運用にしてあります。
GUIツール
「GUIがないとプログラマが作業できない」と言われたので(orz)GUIツールを導入しています。
GUIはわかりやすそうなのでSoureceTreeを導入しました。
こいつはアホみたいにメモリを食うのでVisualStudioとの併用を考えるとそれなりのマシンスペックが必要です。
GitExtentionsも悪くないのですが、git-flowを導入したかったのでSourceTreeに決定しました。
git-flowに対応してるGUIがSourceTreeしかなかったのです。
コミットルール
とくに設けませんでした。まずはGitに慣れることが一番優先であると考えたためです。
ただし、redmineへ連携したいのでコメントにチケット番号を入れることだけはupdateフックで強制してあります。
いきなりpush時に怒られると可哀想なので、commitフックにも同様のチェックを入れて配布しました。
人によっては1つの作業のコミットログがいくつもあってログが見づらいですが、とりあえず気にしないことにしてます。