2013年1月8日火曜日

Git リポジトリを初期化する git init

Git リポジトリを初期化します。新しいリポジトリを作成するときに利用します。

説明

Gitリポジトリを初期化します。

オプション

--bare
ベアリポジトリ(作業ディレクトリを持たないリポジトリ)を作ります。
外部に公開して作業を中継するリポジトリとして使います。
共有リポジトリとして複数のユーザーでリポジトリを共有するときに利用します。

--shared
リポジトリを他のユーザーと共有する場合にしようします。
ディレクトリのパーミッションも併せて設定する必要があります。

--template
指定したテンプレートディレクトリの内容をコピーします。

使い方

git init コマンドは引数に指定したディレクトリに対してGitリポジトリを作成します。ディレクトリを指定しなかった場合は、カレントディレクトリが対象になります。Gitリポジトリは通常.gitという名前のサブディレクトリが作られます。
.gitディレクトリの中身
HEAD現在チェックアウトされているブランチ(HEAD)がどれかという参照情報が書かれる
configこのGitリポジトリの設定を記述します。
descriptionこのGitリポジトリの説明を記述します。GitWebでリポジトリをHTTPで公開したり、メールでコミットメッセージを送信するときに利用します。
hooks/このディレクトリ配下にフックスクリプトを配置します。
info/このGitリポジトリで無視したいファイルをinfo/excludeに記述します。
objects/このGitリポジトリで管理するGitオブジェクトの実体がここに置かれます。
refs/ブランチやタグが指すGitオブジェクトがどれかという参照情報がここに置かれます。

共有リポジトリの作成

共有リポジトリを作る場合、--bare --sharedを指定してリポジトリを作成します。
git init --bare --shared
同じグループ内のユーザーのみで共有したい場合、
git init --bare --shared=0660
--sharedオプションにUNIXパーミッションを利用して指定します。 同じグループだけ書き込みを許可する場合には0664、全てのユーザーに書き込みを許可する場合は0666を指定します。

2013年1月3日木曜日

ファイルをGitの管理の対象外にするには

Gitリポジトリの管理対象外のファイルを設定するには、
リポジトリのディレクトリ内に.gitignoreというファイル名をつくり設定記述します。
*.jar 'ファイル名が.jarで終わるファイル
*~    '~でファイル名が終わるファイル
bin/ 'binディレクトリは管理対象から外す
!lib.jar '*.jarにはマッチするが、lib.jar管理対象にする

Gitで行う作業の基本的な流れ

Gitで行う作業のながれ



  • 共有リポジトリ
    複数のユーザーで共有するリポジトリ。ローカルリポジトリの変更は共有リポジトリを通じて他のユーザーへと共有される
  • ローカルリポジトリ
    ユーザーがローカルマシン上で作業を行うリポジトリです。①のcloneコマンドで共有リポジトリからコピーを行って作成をします。ローカルリポジトリの変更はpushコマンドによって共有リポジトリへ送信されます。
  • 作業ツリー
    実際にユーザーが編集を行うファイルです。チェックアウトによって他のブランチに切り替えたり、特定のバージョンの状態に戻したりすることができます。
  • インデックス
    作業ツリーの変更点を登録する一時領域です。作業ツリーでは変更点を③addコマンドをつかって、インデックスに登録します。登録された変更は④commitコマンドでローカルリポジトリへと反映されます。

ローカルリポジトリを作るには

ローカルリポジトリを作るには2通りの方法があります。
  1. ローカルのバージョン管理を行いたいディレクトリ上で新しいリポジトリを作成する方法
  2. 既存の共有リポジトリからコピーする方法
新しいローカルリポジトリを作成する
ローカルリポジトリを新しく作るには、リポジトリとして使用したいディレクトリに移動しgit initコマンドを実行することでリポジトリが初期化されます。
git init
git initコマンド実行後はディレクトリ内部に.gitディレクトリが作成されます。その中に設定ファイルやリポジトリのデータが格納されます。初期化直後はリポジトリに何も登録されていないので、add、commitコマンドを使ってファイルをリポジトリに登録します。
git add -A
git commit
git log
既存の共有リポジトリからコピーする
cloneコマンドにより共有リポジトリからコピーを作成します
git clone https://github.com/foo/bar/brabra.git
httpやhttpsのアクセスにプロクシが必要な場合は、環境変数http_proxy,https_proxyを設定する必要があります。
export http_proxy=http://username@password@proxy.example.com:8088/
export https_proxy=http://username@password@proxy.example.com:8088/

2013年1月2日水曜日

Gitの設定を表示・設定する git config

gitは設定ファイルを直接編集して設定を行う事も可能ですが、git config コマンドをつかうことで、簡単に設定の表示変更を行う事ができます。

書式

git config [--global | --system] name [value]

説明

Gitの設定を表示・変更します。
オプション
--global | --system
--globalが設定されている場合は、ユーザのGitの設定。
--systemが設定されている場合は、システム全体のGitの設定を行います。設定した値はそのシステムを利用するユーザー全てに適用されます。

git config [--global | --system] -l

説明

Gitの設定を参照します。-lを指定すると現在のGitの設定が一覧表示されます。

git config [--global | --system] -e ( --edit )

説明

Gitの設定をエディタで編集します。

サンプル

git config --global user.name "Yamada Taro"
git config --global user.email "T.Yamada@hogemail.com"

2013年1月1日火曜日

Gitで日本語を扱うための設定

シェルで日本語表示

msysGitのGit Bashのシェルで日本語を表示するためには、inputrcファイルを設定してやる必要があります。inputrcはgitをインストールしたフォルダに中にあるetcフォルダの中にあります。
# disable/enable 8bit input
set meta-flag on
#set input-meta on #コメントアウトする
set output-meta on # offからonへ
set convert-meta off #onからoffへ

日本語のファイル名の表示

日本語のファイル名のファイルを表示するには、profileファイルを編集します。
alias ls='/bin/ls --show-control-chars'

エディタの設定

gitではコミット時にメッセージを編集するためにエディタを使用する。 エディタで保存するときはUTF-8で保存すること。 msysgitでは、vimが標準のエディタとして用意されています。
git config --global core.editor "'c:/path/to/editor' -code=4"