まるノート

備忘録も兼ねて、様々なお役立ち情報をまとめています。

【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:作業フォルダとは異なり更新情報だけを持つ
    (bare には「空の」という意味もあります。)
  • shared:共有可能な権限を設定する

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

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


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

準備として予めGit管理下の作業フォルダ「C:/sample」を作成しておきます。
ここに「test.txt」を作成しコミットまで実施をしておきます。

※なんでもいいのでファイルを作成しコミットまで実施していないと、
後述する git push コマンド実行時にエラーになってしまいます。


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

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

注意 Windows のフォルダをリモートリポジトリに指定する場合であっても、パス区切りは/にしておくこと。 push するときにリモートリポジトリが見つからない旨のエラーになるはずです。


登録後は「.git」内の「config」ファイルに変化があります。(更新日付が変わります)

「.git」配下

※「config」ファイルに作業フォルダに登録されているリモートリポジトリの記述があります。
記述内容はgit config -lコマンドで見ることが出来ます。


本当にリモートリポジトリが登録されているか確認してみます。
コマンドは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 したりと自由に検証が可能です。