Gitに入門する -その9-
ステップ2の「Gitを初めからていねいに」をやる。
「みんなでつかう - ベアリポジトリとクローン,リモートリポジトリ」より。
準備
takashis_workspaceと作成。
$ mkdir takashis_workspace $ cd takashis_workspace $ git init
たかしになりすますためにアカウント設定
$ git config user.name Takashi $ git config user.email takashi@example.com
いつものファイルを作成してコミットしておく。
$ git add cat_lover_said.txt $ git commit -m cat_lover_said.txtを追加
developmentブランチを作成
$ git branch development
ゆうすけが参戦することになった。
なので、共通のリポジトリを作ることにした。
それはたかしのリポジトリから作ることにした。
リポジトリを複製するには、
git clone <複製元> <複製先>
$ git clone --bare takashis_workspace shared_repo.git
-
- bareを付けると、
作業ディレクトリなしでリポジトリだけの複製ができる。
共通のリポジトリで作業することはないので--bareをつけよう。
git clone をすると、クローン元に存在するコミットとブランチを、手元に複製してきます。
このとき、ブランチは「リモートブランチ」としてコピーされてきます。
リモートリポジトリからコピーされてきたブランチなので、「リモートブランチ」です。
ちなみに、リモートブランチはみんなのものなのでそこで作業はできない。
リモートブランチに作業内容を反映させるには、
①リモートリポジトリの、反映したいブランチを「追跡」するためのブランチを手元のリポジトリに作成する
②そのブランチ上で変更を行い、コミットする
③このコミットを、「追跡」しているリモートブランチとリモートリポジトリに反映する
ここからゆうすけ。
まずはプロジェクトのリポジトリを複製する。
$ git clone shared_repo.git yusukes_workspace
ゆうすけアカウントの設定。
$ cd yusukes_workspace $ git config user.name Yusuke $ git config user.email yusuke@example.com
$ git graph * 6ded966 (HEAD -> master, origin/master, origin/development, origin/HEAD) 2015-12-06 Takashi cat_lover_said.txtを追加
リモートリポジトリの確認
$ git remote origin
これは、リモートリポジトリとしてoriginが登録されている、ということ。
ちょっとわけわかんなくなりそうなのでメモ。
。「リモートリポジトリ」とはなんでしょうか。その説明のために、今回の登場人物(登場リポジトリ?)の整理から始めましょう。今回の共同作業で登場したリポジトリは、みっつです。
・たかしのリポジトリ
・ゆうすけのリポジトリ
・みんなで触るリポジトリそして、ゆうすけは、ゆうすけのリポジトリで変更した内容を「みんなで触るリポジトリ」に反映させなければなりません。あるいは、たかしが行った内容を、「みんなで触るリポジトリ」から取得しなければなりません。
こういう、「あのリポジトリにコミット内容を反映させたい」とか「あのリポジトリの変更内容を取得してきたい」というようなことをするためには、「あのリポジトリ」にあたるリポジトリを、「リモートリポジトリ」として登録しておかなければなりません。
次にリモートブランチを追跡するためのブランチを作成する。
git branch <手元のブランチの名前> <追跡したいリモートブランチの名前>
$ git branch development origin/development Branch development set up to track remote branch development from origin.
こっからたかし。
リモートリポジトリの確認
$ git remote
何もない。
リモートリポジトリを登録してあげよう。
git remote add <リモートリポジトリの名前> <リモートリポジトリ場所>
$ git remote add origin ../shared_repo.git
$ git remote origin
おk。
$ git graph * 6ded966 (HEAD -> master, development) 2015-12-06 Takashi cat_lover_said.txtを追加
originのブランチがない。
ので登録してあげよう。
git fetch <リモートリポジトリの名前>
$ git fetch origin From ../shared_repo * [new branch] development -> origin/development * [new branch] master -> origin/master
各ブランチをoriginのブランチを追跡するように設定する。
git branch --set-upstream-to=<追跡したいリモートブランチ> <手元のブランチ>
$ git branch --set-upstream-to=origin/master master Branch master set up to track remote branch master from origin. $ git branch --set-upstream-to=origin/development development Branch development set up to track remote branch development from origin.
以上。
実践は次回。