まるノート

雑記ブログです。

【Git】ローカル環境に共有リモートリポジトリを作成してみた。

はじめに

Git 学習継続中。今回はリモートリポジトリを作成し、基本的な登録方法を学んでみようと思いました。
GitHub や GitLab のような Git のホスティングサービスを使いたい所ですが、より基本的な操作に慣れるためにローカル環境に共有リモートリポジトリを作成してみます。

共有といっても完全に学習用にCドライブ直下に作成します。
間違いなく自分一人しか使いません…。


git init --bare --shared を実行

「remote_repo.git」というフォルダを作成し、リモートリポジトリとして利用することにします。
更新情報だけを持つリモートリポジトリには末尾に「.git」をつける習わしがあるようです。
右クリックメニューの Git bash を起動して以下を実行

$ cd C:/remote_repo.git
$ git init --bare --shared=true
Initialized empty shared Git repository in C:/remote_repo.git/

オプションの意味は以下の通り。

  • bare:作業フォルダとは異なり更新情報だけを持つ
  • shared:共有可能な権限を設定する

「remote_repo.git」の初期状態は以下のようになっています。
git initを実行してGit管理下の作業ディレクトリを作成した時のように「.git」ファイルが存在しません。bare には「空の」という意味もあります。

リモートリポジトリの作成はこれだけです。


作成した作業フォルダに共有リモートリポジトリを登録

過去の記事で以下のようなGit管理対象の作業フォルダ「C:/sample」を作成しました。
「test.txt」を作成し、コミットまで実施済みの状態です。
※なんでもいいのでファイルを作成しコミットまで実施していないと、後述する git push コマンド実行時にエラーになるはずです。

この作業フォルダに、作成したリモートリポジトリ「remote_repo.git」を登録してみます。
コマンドは以下の通りです。リモートリポジトリは任意の名前を設定できますが、「origin」とするのが一般的です。
remote_repo.git [リモートリポジトリの名前] [登録したいリモートリポジトリのパス]

$ cd C:/sample
$ git remote add origin C:/remote_repo.git

※Windows のフォルダをリモートリポジトリに指定する場合であっても、パス区切りは/にしておくこと。
push するときにリモートリポジトリが見つからない旨のエラーになるはずです。
(自分は一度間違えました…。)


登録後は「.git」内の「config」ファイルに変化があったようです。
(更新日付が変わるはずです)

「config」ファイル内にこの作業フォルダに登録されているリモートリポジトリの記述があり、 git config -lコマンドで記述内容を見ることができ、ユーザ名など様々な情報が表示されるはずです。
別のリモートリポジトリを登録したい場合など、一度登録したリモートリポジトリを削除するにはgit remote rm [リポジトリ名] でOKです。

登録されているリモートリポジトリのみを確認するコマンドはgit remote -vになります。

$ git remote -v
origin  c:/remote_repo.git (fetch)
origin  c:/remote_repo.git (push)

確かに自分で設定したリモートリポジトリの名称 origin とパスが表示されました。

push するコマンドはgit push [リモートリポジトリ名] [リモートリポジトリに登録したいブランチ名]です。
標準ブランチ名は master になります。実行します。

$ git push origin master
Enumerating objects: 6, done.
Counting objects: 100% (6/6), done.
Delta compression using up to 12 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (6/6), 451 bytes | 451.00 KiB/s, done.
Total 6 (delta 0), reused 0 (delta 0), pack-reused 0
To c:/remote_repo.git
 * [new branch]      master -> master

以上で、ローカル環境に作成した共有リモートリポジトリを使うことができるようになりました。
あとは作業フォルダの内容を更新した後、再度 push したり別のフォルダに clone したりと自由に検証が可能です。