Git(3)既存のフォルダからローカルリポジトリとリモートリポジトリを作成

2014-03-16

旧ブログ

t f B! P L

前の関連記事:Git(2)TortoiseGitでGitの設定を行う


既存のフォルダからローカルリポジトリとリモートリポジトリを作成してこれらが連携できるように設定します。

既存のフォルダにローカルリポジトリを作成



この流れで対象フォルダをリモートリポジトリに流します。

まずLibreOffice Calcで作った「Calc無題1.ods」とLibreOffice Writerで作った「Writer無題 1.odt」ファイルを入れたフォルダ「C:\Git管理」を作成しました。


「C:\Git管理」フォルダのなにもないところで右クリック→Git ここにリポジトリを作成。


このフォルダをリモートリポジトリにする場合は「Bareを生成」にチェックしますが、今回はこのフォルダの中にローカルリポジトリを作成するのでチェックをつけずに「OK」します。


まだ何もコミットしていないのでローカルリポジトリは「空の」と言われます。

(余談ですが、repositoryの日本語は「リポジトリ」なのか「レポジトリ」なのか。私は「レポジトリ」と最初思って記事を書いていましたが「リポジトリ」と書いてあるページが多いので書き換えました。repositoryの意味 - 英和辞典 Weblio辞書で発音を聞くと「リポジトリ」と聞こえますね。)


エクスプローラのメニューからツール→フォルダーオプション→表示、ファイルとフォルダーの表示、で隠しフォルダーを表示する、を選択すると「C:\Git管理\.git」フォルダができていることがわかります。

ローカルリポジトリのデータはこの.gitのなかに収納されますが、Gitのコマンドを通して操作するので表示させる必要はありません。

次にフォルダの内容をローカルリポジトリに登録します。これをコミットといいます。


「C:\Git管理」フォルダのなにもないところで右クリック→Git コミット→"master"。


「メッセージ」の先頭部分は変更履歴に表示されますのでわかるように内容を書きます。

省略はできません。

「変更した項目」で登録するファイルにチェックをつけます。

「OK」をクリックするとコミットが開始されます。


成功しましたね。

とりあえず「クローズ」で閉じます。

エクスプローラをみるとローカルリポジトリを作成したフォルダと登録したファイルのアイコンが変更されていることに気づきます。



これで.gitフォルダにあるローカルリポジトリにコミット成功です。

ローカルリポジトリを複製してリモートリポジトリを作る


まずはリモートリポジトリとなるフォルダを作成します。

リモートリポジトリとなるフォルダ名はローカルリポジトリのあるフォルダ名の最後に".git"を追加した名前にします。

とういうことでリモートリポジトリを作りたいところに「Git管理.git」という名の空フォルダを作成します。

「C:\共有フォルダ\Git管理.git」を作りました。

最初はこれにローカルリポジトリの内容を複製します。


「C:\共有フォルダ\Git管理.git」を右クリック→Gitクローン(複製)。


「URL」には既に存在しているリポジトリを指定します。

右の「フォルダ」ボタンをクリックしてローカルリポジトリのある「C:\Git管理」を選択します。

「ディレクトリ」は複製先のフォルダを指定します。

右の「参照」ボタンをクリックして先ほど作った「C:\共有フォルダ\Git管理.git」を選択します。

複製先をリモートリポジトリにしますので「Bareリポジトリにクローン」をチェックしておきます。

これで「OK」します。


「成功」と表示されます。

│  config
│  description
│  HEAD

├─hooks
│      applypatch-msg.sample
│      commit-msg.sample
│      post-update.sample
│      pre-applypatch.sample
│      pre-commit.sample
│      pre-push.sample
│      pre-rebase.sample
│      prepare-commit-msg.sample
│      update.sample

├─info
│      exclude

├─objects
│  ├─2b
│  │      fd95b5fcc44b8866f1f1766a57bec657cf0ab1
│  │
│  ├─73
│  │      7bd4471ba39147d2e96ee5c83985fda9c26ced
│  │
│  ├─b0
│  │      4a30d2ae9ffec1152343a308c6cba517f9becd
│  │
│  ├─da
│  │      45f036a6f85aa9b09cf046585b3fb9deffee3e
│  │
│  ├─info
│  └─pack
└─refs
    ├─heads
    │      master
    │
    └─tags


「C:\共有フォルダ\Git管理.git」の中を見てみるとこのようになっています。

objectsフォルダ以下に対象フォルダのデータが入っているようです。

これでリモートリポジトリができました。

この状態では単にローカルリポジトリと同じ内容のリモートリポジトリができたというだけであって、まだこれらの連携がとれていませんので次にその設定をします。

ローカルリポジトリからプッシュでリモートリポジトリへ内容を反映できるようにする


(H26.3.20追記。以下のようにTortoiseGitでプッシュするのではなく、右クリック→TortoiseGit→設定→リモート、でリモートURLを設定したほうがいいと思います。Git(8)NetBeans7.4のGitプラグインではコミットグラフの表示なし?へ。)


ローカルリポジトリのある「C:\Git管理」フォルダのなにもないところで右クリック→TortoiseGit→プッシュ(リモートへ反映)。



この「リモート」の欄にリモートリポジトリを指定します。

「管理」をクリック。


「URL」にリモートリポジトリのフルパスを入力します。

「URL」を入力すると「リモート」には勝手に"origin"がセットされます。


これで「宛先」の「リモート」に"origin"が入りました。

「Ref」の「リモート」は空欄のままですが選べるブランチがセットされていないのでこのまま「OK」します。


ちゃんと"origin"のmasterブランチにプッシュされましたね。

一度プッシュすると「Ref」の「リモート」のブランチを選択できるようになります。

再度プッシュ画面を開きます。

「C:\Git管理」フォルダのなにもないところで右クリック→TortoiseGit→プッシュ(リモートへ反映)。


「Ref」の「リモート」の右にある三点リーダーボタンをクリック。


Refsの下層になるremotesのなかのoriginを選ぶとmasterブランチが選択できます。

「OK」とすると「リモート」にmasterが入ります。


次回からは下向き三角をクリックするとmasterが選択できるようになります。

これで、対象フォルダ - ローカルリポジトリ - リモートリポジトリ、の連携ができました。

今回は対象フォルダからリモートリポジトリを作成しましたが、逆にリモートリポジトリからローカルレポジトリを作るには「Gitクローン(複製)」で「Bareリポジトリにクローン」のチェックをはずして、リモートリポジトリを複製すればよいわけです。

次の関連記事:Git(4)ファイルの変更箇所をみる

ブログ検索 by Blogger

Translate

最近のコメント

Created by Calendar Gadget

QooQ