背景
諸事情によりGitHubなどが使えず、リモートリポジトリを社内LANの共有フォルダなどにおきたい場合の手順について調べましたので、記録しておきます。
環境はWindows10で、Gitはインストール済みという前提です。
まず、Git Bashでの操作を説明するため、テキストファイルを管理対象とする例を説明します。
次に、VisualStudioに備わっているGit操作を使った操作手順について説明します。使用したVisualStudioは2015です。
概要
共有フォルダにおかれた1つのリモートリポジトリを共有し、AさんとBさんの二人が並行して作業する場合を想定します。
大まかな手順としては次のようになります。
- 今回の説明のために使用する3つのフォルダを準備します
- AさんのPC上に最初のプロジェクトを作る
- Aさんのプロジェクトのクローン(ベア)を共有フォルダ上に作る
- Aさんのプロジェクトにリモートリポジトを設定する
- 確認としてAさんのローカルリポジトリで変更をコミットしてプッシュする
- BさんのPCに3.のリモートリポジトリのクローンを作る
手順(Git Bashからの操作)
手順1 説明用のフォルダを準備する
今回は説明のために下図のように1つのフォルダの下にAさん、Bさんの作業フォルダとリモートリポジトリをおく共有フォルダを作ります。
実際にはこれら3つのフォルダは社内LANなどを介して離れたところに作られます。
手順2 最初のプロジェクトを作る
AさんのPC上で最初にプロジェクトを作ります。プロジェクトといってもただのテキストファイルを含む下図のようなフォルダです。テキストファイルdoc.txtの中身はブランクです。
このフォルダをGit管理対象にするため、Git Bashから次の操作を行います。
$ git init
$ git add --all
$ git commit -m 最初のコミット
手順3 ベア(リモート)リポジトリを作る
Gitで管理されているAさんのプロジェクトtxtのベアリポジトリを作ります。
Git Bashでリモートリポジトリを作りたいフォルダに移動し、下記の操作を行います。
git clone --bare ../A-san/txt txt.git
作成するベアリポジトリの名前には末尾に.gitをつけておくといいようです。
手順4 Aさんのプロジェクトにリモートリポジトリを設定する
手順3ではgit clone
を使用しましたが、git clone
はクローン元に対しては何も操作を加えないため、この時点ではAさんのローカルリポジトリはベアリポジトリが作られたことを知りません。
Aさんは作業した内容をプッシュする必要がありますので、Aさんのローカルリポジトリにプッシュ/プル先となるリモートリポジトリを設定します。
Git Bashで~/prog/A-san/txtに戻り、下記の操作を行います。
git remote add origin ../../_depot/txt.git
git remote update
git push --set-upstream origin master
3行目は厳密にはプッシュの操作ですが、私の環境ではgit push
では初回は必ずエラーが出るのでここで一度このコマンドを送信しておきます。
手順5 確認
現時点でAさんのローカルリポジトリは~prog/_depotにおいたリモートリポジトリとリンクしており、Aさんが行った変更をプッシュできる環境ができ上がっています。
確認のため、~/prog/A-san/txt/doc.txtに下記の1行を追記してコミット、プッシュします
Aさん、1行記入
git add -all
git commit -m Aさん、1行記入
git push
手順6 BさんのPCにリモートリポジトリのクローンを作る
Bさんが作業できるように、Git Bashで~/prog/B-sanに移動して下記の操作を行います。
git clone ../_depot/txt.git
この操作だけで下図のようにBさんのフォルダにプロジェクトが作られています。
このdoc.txtの中身にも手順5で記入した1行目の内容がちゃんと反映されています。
また、このローカルリポジトリはリモートリポジトリをクローンしているので、クローン元がリモートリポジトリとして既に設定されているので、手順4に相当する操作は不要です。
以上でAさん、Bさんが並行して作業する環境ができあがりました。
手順(VisualStudio2015からの操作)
VisualStudioにはGit操作の機能が備わっていて、これを使用するとラクチンです。
手順の流れはGit Bashの場合と同じですが、手順1は完了しているので、手順2から説明をスタートします。
手順2 最初のプロジェクトを作る
VisualStudioから新規プロジェクトの作成を行います(appという名前の新規プロジェクトを作ります)。
下図のようなフォルダが作られます。
これをGit管理するためにはVisualStudioの右下のGitボタンを押すだけでOKです。
これで.gitignoreも自動的に生成され、最初のコミットをやってくれます。
ボタンを押すと下図のようにGit機能が使えるようになります。
左から、プッシュ待ちの変更数、コミット待ちの変更数、ローカルリポジトリ、ブランチが表示されています。
VisualStudioではこの辺をクリックするとGit操作ができます。
手順3 ベア(リモート)リポジトリを作る
この手順はGit Bashを使います。(VisualStudioでもできるかもしれませんが)
git clone --bare ../A-san/app app.git
手順4 最初のプロジェクトにリモートリポジトリを設定する
この手順もGit Bashを使います。
VisualStudioの場合、1行目の操作でリモートリポジトリを指定する際、
絶対パスを使わないとプッシュできませんでした。
git remote add origin C:/xxx/prog/_depot/app.git
git remote update
git push --set-upstream origin master
3行目の操作によりプッシュがされますので、VisualStudioの表示は下図のようになります。
手順5 確認
AさんのVisualStudio上で何らかの変更を行います。
たとえばフォームにボタンを追加すると、下図のように3つのコミット待ちの変更が出てきますので、これをコミットし、プッシュしておきます。
手順6 BさんのPCにリモートリポジトリのクローンを作る
この作業もGit Bashを使用します。
git clone ../_depot/app.git
これで下図のようにBさんのフォルダにプロジェクトが作られていて、開いてみると手順5で追加したボタンがちゃんと反映されています。
おまけ
上記はGitはインストール済み、初期設定済みの前提でしたが、メンバーが追加になった時など、新たにGitをインストールした際、Gitに設定する手順もメモしておきます。
git config --global user.name yakisobamilk
git config --global user.email yakisoba@milk.com