Carpe Diem

  Top > スポンサー広告> Git > Gitでローカル、共有リポジトリを作成  

スポンサーサイト

-- - --/-- [--] - --:--

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Gitでローカル、共有リポジトリを作成

2012 - 07/17 [Tue] - 19:24

前回の続きです。
Gitの注意としては、分散型であるためにリポジトリがローカルと共有の2つがあるところです。今回は

①ローカルにリポジトリを作成&簡単な使い方
②共有リポジトリ(remote)を作成
③ローカルのデータお共有リポジトリに転送(push)

の流れ説明します。

◆リポジトリの作成
適当にフォルダを作成

$ mkdir hoge
$ cd hoge
$ git init


これでローカルリポジトリの作成は完了です。.gitファイルが作成され、そこにsvnのリポジトリでも見たようなhooksなどのフォルダが作成されています。


◆ファイルを作成してコミット

~/hoge$ echo "hogehoge" > hoge.txt

svn同様新しいファイルは status オプションで確認できます。

~/hoge$ git status
# On branch master
#
# Initial commit
#
# Untracked files:
# (use "git add
..." to include in what will be committed)
#
# hoge.txt
nothing added to commit but untracked files present (use "git add" to track)


リポジトリに登録するには同じく add オプション
~/hoge$ git add hoge.txt

コミットします。
~/hoge$ git commit -m "first commit"

ちゃんと登録されているか、一度ファイルを削除して確認する。

~/hoge$ rm hoge.txt
~/hoge$ git checkout
D hoge.txt
~/hoge$ git checkout hoge.txt
~/hoge$ ls

hoge.txt

元に戻りましたね。git checkout はsvn upに近いことができます。また次回説明しますが、ブランチの変更にも使用します。


◆ファイルの編集
編集し、差分を確認します。

~/hoge$ echo "piyopiyo" >> hoge.txt
~/hoge$ git diff

diff --git a/hoge.txt b/hoge.txt
index 2262de0..50345fa 100644
--- a/hoge.txt
+++ b/hoge.txt
@@ -1 +1,2 @@
hogehoge
+piyopiyo


ここでsvnならそのままコミットできますが、gitは毎回コミットするファイルをaddで指定する必要があります。面倒な人は add を一緒にしてくれる「-a」オプションを使用しましょう。

~/hoge$ git commit -am "second commit"


◆共有リポジトリの作成

簡単な編集方法を説明したので次に移ります。共有リポジトリを作成し、ローカルリポジトリのデータを共有リポジトリにpushします。

適当なフォルダを作成します。慣習的に共有リポジトリには○○.gitとつけるようです。

$ mkdir share.git
$ cd share.git
$ git init
--bare

今回は bare オプションをつけます。これをつけると .git フォルダは作られず「裸のまま(bare)」ファイル郡が作成されます。


◆ローカルのデータを共有リポジトリ(remote)に転送(push)
先ほどのローカルのデータを送ります。ネットワーク越し出ないので書き方は「file://」となります。
$ git push <送信先リポジトリ(remote)> <送信するブランチ(local)>:<送信先ブランチ(remote)>

という順なので

~/hoge$ git push file:///home/user/share.git/ master

masterは「master:master」の略です。(ローカルのmasterをリモートのmasterに反映させる)


◆共有リポジトリからデータを持ってくる
他の開発者が共有リポジトリからデータをダウンロードする際は以下のようにします。

$ git clone file:///home/user/share.git/ piyo
$ cd piyo
~/piyo$ ls

hoge.txt

きちんとダウンロードできていますね。このgit cloneでローカルリポジトリ「.git」も付いているので、基本的にこのpiyoフォルダでのcommitでは ~/piyo/.git のローカルリポジトリが更新されていきます。

共有リポジトリに変更を適用したい場合は

~/piyo$ git push origin master

逆に他の開発者が共有リポジトリを更新していて、データを持ってきたい場合は

~/piyo$ git pull origin

でOKです。
originというのはリポジトリURLのアリエス(別名)です。ではこのoriginはどうなっているかというと、以下のコマンドで確認できます。

~/piyo$ git remote -v
origin file:///home/user/share.git/ (fetch)
origin file:///home/user/share.git/ (push)



◆リモートリポジトリの編集
リモートリポジトリを加える場合
$ git remote add remote-name url
今回なら
$ git remote add origin file:///home/user/share.git/

fetch するには「-f」オプションをつける。
$ git remote add -f remote-name url

リネームする場合は
$ git remote rename old-name new-name

削除する場合は
$ git remote rm remote-name

URLを変更する場合は
$ git remote set-url remote-name <新しいリポジトリURL>
今回なら
$ git remote add origin file:///home/user/share.new.git/

◆補足

ローカルリポジトリのデータをcloneすることももちろんできます。
しかしpushなどではエラーを受けます。まだちょっと理解できていないのでこれは次回


ソース:
gitの使い方メモ
非エンジニア向けGitの使い方
gitでoriginのurlを確認する。
優しいgitの育て方 : svn update

コメントの投稿





管理者にだけ表示を許可する

 | ホーム | 

プロフィール

Cicatrice

Author:Cicatrice
備忘録

検索フォーム

カテゴリ

最新記事

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。