18
27

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

共有フォルダにリモートリポジトリを作る手順

Last updated at Posted at 2020-03-17

背景

諸事情によりGitHubなどが使えず、リモートリポジトリを社内LANの共有フォルダなどにおきたい場合の手順について調べましたので、記録しておきます。

環境はWindows10で、Gitはインストール済みという前提です。

まず、Git Bashでの操作を説明するため、テキストファイルを管理対象とする例を説明します。
次に、VisualStudioに備わっているGit操作を使った操作手順について説明します。使用したVisualStudioは2015です。

概要

共有フォルダにおかれた1つのリモートリポジトリを共有し、AさんとBさんの二人が並行して作業する場合を想定します。

大まかな手順としては次のようになります。

  1. 今回の説明のために使用する3つのフォルダを準備します
  2. AさんのPC上に最初のプロジェクトを作る
  3. Aさんのプロジェクトのクローン(ベア)を共有フォルダ上に作る
  4. Aさんのプロジェクトにリモートリポジトを設定する
  5. 確認としてAさんのローカルリポジトリで変更をコミットしてプッシュする
  6. BさんのPCに3.のリモートリポジトリのクローンを作る

手順(Git Bashからの操作)

手順1 説明用のフォルダを準備する

今回は説明のために下図のように1つのフォルダの下にAさん、Bさんの作業フォルダとリモートリポジトリをおく共有フォルダを作ります。

image.png

実際にはこれら3つのフォルダは社内LANなどを介して離れたところに作られます。

手順2 最初のプロジェクトを作る

AさんのPC上で最初にプロジェクトを作ります。プロジェクトといってもただのテキストファイルを含む下図のようなフォルダです。テキストファイルdoc.txtの中身はブランクです。

image.png

このフォルダをGit管理対象にするため、Git Bashから次の操作を行います。

~/prog/A-san/txt
$ git init
$ git add --all
$ git commit -m 最初のコミット

手順3 ベア(リモート)リポジトリを作る

Gitで管理されているAさんのプロジェクトtxtのベアリポジトリを作ります。
Git Bashでリモートリポジトリを作りたいフォルダに移動し、下記の操作を行います。

~/prog/_depot
git clone --bare ../A-san/txt txt.git

作成するベアリポジトリの名前には末尾に.gitをつけておくといいようです。

image.png

手順4 Aさんのプロジェクトにリモートリポジトリを設定する

手順3ではgit cloneを使用しましたが、git cloneはクローン元に対しては何も操作を加えないため、この時点ではAさんのローカルリポジトリはベアリポジトリが作られたことを知りません。

Aさんは作業した内容をプッシュする必要がありますので、Aさんのローカルリポジトリにプッシュ/プル先となるリモートリポジトリを設定します。

Git Bashで~/prog/A-san/txtに戻り、下記の操作を行います。

~/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行記入

~/prog/A-san/txt
git add -all
git commit -m Aさん、1行記入
git push

手順6 BさんのPCにリモートリポジトリのクローンを作る

Bさんが作業できるように、Git Bashで~/prog/B-sanに移動して下記の操作を行います。

~/prog/B-san
git clone ../_depot/txt.git

この操作だけで下図のようにBさんのフォルダにプロジェクトが作られています。

image.png

このdoc.txtの中身にも手順5で記入した1行目の内容がちゃんと反映されています。
また、このローカルリポジトリはリモートリポジトリをクローンしているので、クローン元がリモートリポジトリとして既に設定されているので、手順4に相当する操作は不要です。

以上でAさん、Bさんが並行して作業する環境ができあがりました。

手順(VisualStudio2015からの操作)

VisualStudioにはGit操作の機能が備わっていて、これを使用するとラクチンです。
手順の流れはGit Bashの場合と同じですが、手順1は完了しているので、手順2から説明をスタートします。

手順2 最初のプロジェクトを作る

VisualStudioから新規プロジェクトの作成を行います(appという名前の新規プロジェクトを作ります)。
下図のようなフォルダが作られます。

image.png

これをGit管理するためにはVisualStudioの右下のGitボタンを押すだけでOKです。
これで.gitignoreも自動的に生成され、最初のコミットをやってくれます。

image.png

ボタンを押すと下図のようにGit機能が使えるようになります。
左から、プッシュ待ちの変更数、コミット待ちの変更数、ローカルリポジトリ、ブランチが表示されています。
VisualStudioではこの辺をクリックするとGit操作ができます。

image.png

手順3 ベア(リモート)リポジトリを作る

この手順はGit Bashを使います。(VisualStudioでもできるかもしれませんが)

~/prog/_depot
git clone --bare ../A-san/app app.git

image.png

手順4 最初のプロジェクトにリモートリポジトリを設定する

この手順もGit Bashを使います。
VisualStudioの場合、1行目の操作でリモートリポジトリを指定する際、
絶対パスを使わないとプッシュできませんでした。

~/prog/A-san/app
git remote add origin C:/xxx/prog/_depot/app.git
git remote update
git push --set-upstream origin master

3行目の操作によりプッシュがされますので、VisualStudioの表示は下図のようになります。

image.png

手順5 確認

AさんのVisualStudio上で何らかの変更を行います。
たとえばフォームにボタンを追加すると、下図のように3つのコミット待ちの変更が出てきますので、これをコミットし、プッシュしておきます。

image.png

手順6 BさんのPCにリモートリポジトリのクローンを作る

この作業もGit Bashを使用します。

~/prog/B-san
git clone ../_depot/app.git

これで下図のようにBさんのフォルダにプロジェクトが作られていて、開いてみると手順5で追加したボタンがちゃんと反映されています。

image.png

おまけ

上記はGitはインストール済み、初期設定済みの前提でしたが、メンバーが追加になった時など、新たにGitをインストールした際、Gitに設定する手順もメモしておきます。

GitBash
git config --global user.name yakisobamilk
git config --global user.email yakisoba@milk.com
18
27
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
27

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?