Gitは分散型のバージョン管理システムである。分散型バージョン管理システムは、リポジトリが複数あるバージョン管理システムである。Gitはリモートサーバにある中心リポジトリのコピーをローカル環境にコピーして、そのローカルリポジトリを使って作業を行う。

目次

Gitのインストール

  1. GitのWebサイトを開く。
    http://git-scm.com/
  2. 「Downloads」をクリックする。
  3. 「Windows」をクリックする。
  4. ファイルのダウンロードが始まる。
  5. ダウンロードしたファイルを実行する。

インストーラを実行すると、「Git Setup Wizard」の画面が表示される。

ライセンス

インストール先フォルダ

インストール先を選択する画面が表示される。デフォルトのままでよい。

コンポーネント

インストールするコンポーネントを選択する画面が表示される。必要なものにチェックを入れる。

Gitのコンポーネント
コンポーネント 説明
Addional icons On the Desktop デスクトップにアイコンを追加する。
Windows Explorer integration Git Bash Here Windowsエクスプローラーのコンテキストメニューに「Git Bash Here」を追加する。
Git GUI Here Windowsエクスプローラーのコンテキストメニューに「Git GUI Here」を追加する。
Git LFS (Large File Support) ラージファイルサポート
Associate *.git* cofiguration files with the default text editor Gitコンフィグレーションファイルをデフォルトのテキストエディタに関連付ける。
Associate *.sh files to be run with Bash 拡張子が「*.sh」のファイルをBashで実行する。
Use a TrueType font in all consle windows すべてのコンソールウィンドウでTrueTypeフォントを使う。
Check delay for Git for Windows updates Git for Windowsの更新プログラムの遅延を確認する。

スタートメニューのフォルダ

スタートメニューのフォルダを選択する画面が表示される。

スタートメニューにフォルダを作りたくなければ「Don't Create a Start Menu folder」にチェックを入れる。

Gitで使うデフォルトのテキストエディタ

Gitで使うデフォルトのテキストエディタを選択する画面が表示される。次のうちいずれかを選択する。

「Select other editor」を選択すれば、任意のテキストエディタを使える。とくに使いたいものがない場合は、「Nano」を選ぶ。

PATH環境変数

HTTPS

Use the OpenSSL library
OpenSSLライブラリを使用すると、サーバ証明書はca-bundle.crtファイルを使用して検証される。
Use the Windows Secure Channel library
Windows Secure Channelを使用すると、サーバ証明書はWindows Certificate Storesを使用して検証される。このオプションを使用すると、配布されている社内のルートCA証明書を使用することもできます。

改行コードの変換

Gitからチェックアウトするときとコミットするときに改行コードの変換方法を選ぶ。

Checkout Windows-style, commit Unix-style line endings
チェックアウトするときはWindowsスタイル(CRLF)に変換する。コミットするときはUnixスタイル(LF)に変換する。
Checkout as-is, commit Unix-style line endings
チェックアウトするときに改行コードを変換しない。コミットするときはUnixスタイル(LF)に変換する。
Checkout as-is, commit as-is
チェックアウトするときに改行コードを変換しない。コミットするときも改行コードを変換しない。

HTMLCSSはUnixスタイルで作るのが一般的である。Windowsで使っているテキストエディタがWindowsスタイルの改行コードしかサポートしていない場合は、チェックアウトするときにWindowsスタイルに変換して、コミットするときにUnixスタイルに変換するのがよい。

Git Bashで使う端末エミュレータ

追加オプション

しばらく待つと、Gitのインストールが完了する。

gitコマンド

Gitのバージョンを表示する

git --version

Gitのコマンド一覧を表示する。

git --help
git [-c name=value] [--exec-path[=path]] [--html-path] [--man-path] [--info-path] [--p|--paginate|--nopager] [--noreplace-objects] [--bare] [--git-dir=path] [--work-tree=path] [--namespace=name] command [arg...]
--exec-path
gitの中核(core)プログラムがインストールされているパスを表示する。
--html-path
gitのHTML文書がインストールされているパスを表示する。
--p, --paginate
すべての出力をページャ(less)で出力する。
--nopager
gitの出力をページャで出力しない。
--git-dir=path
リポジトリのパスを指定する。
--bare
リポジトリを裸(bare)のリポジトリとして扱う。

commandに指定できるコマンドを次に示す。

gitのサブコマンド
コマンド 説明
add 新しいファイルや修正したファイルのコンテンツを索引に追加する。
branch ブランチを作成又は削除する。
checkout チェックアウトする。
clone リポジトリを新しいディレクトリに複製する。
commit 記録された変更をローカルリポジトリに反映する。
config Gitやリポジトリの設定を変更する。
diff 作業ツリーとコミットとの変更点を表示する。
fetch 他のリポジトリを参照又はオブジェクトをダウンロードする。
help Gitに関するヘルプ情報を表示する。
init 空のGitリポジトリを作成する。または既存のリポジトリを再初期化する。
log コミット・ログを表示する。
ls-files インデックスと作業ツリーにあるファイルに関する情報を表示する。
merge 2つ以上の開発履歴を一緒に結合する。
mv ファイルやディレクトリの名前を変更したり場所を移動する。
pull 他のリポジトリ又はローカルブランチをフェッチしてからマージする。
push リモートリポジトリを更新する。
remote トラックされたリポジトリのセットを管理する。
rm 作業ツリーとインデックスからファイルを削除する。
status 作業ツリーの状態を表示する。

ユーザ名とメールアドレスの設定

まず初めに、ユーザ名とメールアドレスを設定する必要がある。ユーザ名とメールアドレスは、git configコマンドで設定する。

git config --global user.name marina
git config --global user.email mail@itre.fc2web.com

ブランチの一覧を表示する

ブランチの一覧を表示するには、引数を指定せずにgit branchコマンドを実行する。

git branch

ブランチを作成する

ブランチを作成するには、新たに作成するブランチの名前を指定してgit branchコマンドを実行する。

git branch foo

ブランチを削除する

ブランチを削除するには、git branchコマンドにdオプションを付けて実行する。

git branch -d foo

リモートのブランチを削除するには、ブランチを削除した後にプッシュする。

git branch -d foo
git push origin :foo

git checkout

git checkoutはチェックアウトするコマンドである。

git checkout [-b] branch-name

ブランチを切り替える。

git checkout foo

ブランチを作成して、そのブランチに切り替える。

$ git checkout -b foo
Switched to a new branch 'foo'

$

git init

git initはGitリポジトリを新たに作成するコマンドである。このコマンドは、バージョン管理を行っていない既存のプロジェクトをGitリポジトリに変換する場合や、空の新規リポジトリを作成して初期化する場合に使用する。

git init [--bare] [directory]

directoryで指定したパスに空のGitリポジトリを作成する。directoryの指定を省略した場合は、カレントディレクトリをGitリポジトリに変換する。

git initコマンドには次に示すオプションを指定することができる。

--bare
作業ディレクトリを持たない空のGitリポジトリを作成する。共有リポジトリは必ず--bareフラグを指定して作成しなければならない。作業ディレクトリを持たないリポジトリでは、ファイルの編集やコミットをすることはできない。

git clone

git cloneは、既存のGitリポジトリのコピーを作成するコマンドである。リポジトリのクローンを行うと、元のリポジトリを指すoriginという名前のリモート接続が自動的に作成される。これにより、簡単に中央リポジトリとの通信を行うことができる。中央リポジトリから開発者の作業コピー(ローカルリポジトリ)を新たに作成する場合は、git cloneコマンドを使用する。

git clone [--template=template-directory] [-l] [-s]
 [--no-hardlinks] [-q] [-n] [--bare] [--mirror] [-o name]
 [-b name] [-u upload-peak] [--reference repository] [--separate-git-dir git-dir] [--depth depth] [--[no-]single-branch] [--recursive|--recurse-submodules]
 [--] repository [directory]

リモートリポジトリを複製する例を次に示す。

$ git clone c:/repo
Cloning into 'repo'...
done.

git add

git addは、作業ディレクトリの内容をステージングエリアに追加するコマンドである。このコマンドは、個々のファイルの更新内容を次回コミットの対象となることをGitに指示する。

git add path

pathにはファイルまたはディレクトリのパスを指定する。ディレクトリのパスを指定した場合は、ディレクトリ内のすべての変更をステージして次回のコミットの対象とする。

git commit

git commitは、ステージされたファイルをローカルリポジトリにコミットするコマンドである。

git commit [-m "message"]

このコマンドには次に示すオプションを指定することができる。

-m "message"
コミットメッセージを指定する。-mオプションを指定しなかった場合は、テキストエディタが起動されてコミットメッセージの入力を求められる。

コミットする例を次に示す。

$ git commit -m "first commit"

git status

git statusは、作業ディレクトリの状態を表示するコマンドである。このコマンドを実行すると、ステージされた変更内容、ステージされていない変更内容及びGitによる追跡の対象外となっているファイルが表示される。

git log

git logは、コミット済みの履歴を表示するコマンドである。

git log [-n limit] [--oneline] [--stat] [-p]

このコマンドには次の示すオプションを指定することができる。

-n limit
表示するコミットをlimitに制限する。
--oneline
コミットの内容を1行に圧縮して表示する。
--stat
改変されたファイル及びその中での追加行数と削除行数を増減数で表示する。
-p
各々のコミットに対応するパッチを表示する。コミット履歴から取得できる詳細な情報である各々のコミットの完全な差分情報が表示される。
git log > /tmp/log.txt

git diff

git diff [options] [commit] [--] [path...]
git diff [options] --cached [commit] [--] [path...]
git diff [options] commit commit [--] [path...
git diff [options] blob blob
git diff [options] [--no-index] [--] path path

git fetch

git fetch [options] [repository [refspec..]]
git fetch [options] group
git fetch --multiple [options] [(repository|group)...]
git fetch --all [options]

git help

helpコマンドは、Gitに関するヘルプ情報を表示するコマンドである。

git help [-a|--all] [-g|--guide] [-i|--info|-m|--main|--web] [COMMAND|GUIDE]

git merge

git merge [-n] [--stat] [--no-commit] [--squash] [--[no-]edit] [-s strategy] [-X strategy-option] [--[no-]rerere-autoupdate] [-m msg] [commit...]
git merge msg HEAD commit...
git merge --abort

git mv

git mvは、ファイルやディレクトリの名前を変更したり、場所を移動するコマンドである。変更前のファイルを削除(git rm)して、変更後のファイルをステージング(git add)する。また、ワーキングコピーのファイルも実際に名前変更や移動が行われる。

git mv [-v] [-f] [-n] [-k] source destination
git mv [-v] [-f] [-n] [-k] source... destination-directory

ファイルfoo.phpbar.phpに変更する例を示す。

git mv foo.php bar.php

git pull

git pull [options] [repository [refspec..]]

git remote

リモートリポジトリに別名を付ける

gitコマンドでリモートリポジトリを指定する場合、URLで指定する。しかし、URLは文字数が多いうえ分かりにくい。そこで、短くてわかりやすい別名をリモートリポジトリに付けることができる。リモートリポジトリに付けた別名は.git/configファイルに保存される。

git remote add remote-name url

Gitの初期設定

  1. スタートメニューから[すべてのプログラム] - [Git] - [Git Bash]をクリックする。
  2. ユーザ名を登録する。
    $ git config --global user.name marina
  3. メールアドレスを登録する。
    $ git config --global user.email marina@itref.fc2web.com
  4. 日本語を含んだファイル名が正しく表示されるよう設定する。
    $ git config --global core.quotepath off
  5. Gitの出力をカラーリングする。
    $ git config --global color.ui auto

共有リポジトリの作成

  1. ディレクトリ(フォルダ)を作成する。
  2. 作成したディレクトリ(フォルダ)に移動する。
  3. 共有として初期化する。
    $ git init --bare --shared=true

リポジトリの作成

  1. フォルダを作成する。
    C:\repo
  2. Git Bashを起動する。
  3. フォルダに移動する。
    $ cd /c/repo
  4. 初期化する。
    $ git init
    Initialized empty Git repository in c:/repo/.git/

リモートリポジトリの確認

  1. 存在するリモートリポジトリの一覧を表示する。
    $ git remote
  2. 存在するリモートリポジトリの詳細を表示する。
    $ git remote -v
  3. リモートリポジトリの情報を表示する。
    $ git remote show origin

フェッチとマージ

  1. フェッチする。
    $ git fetch
  2. ログを見る。
    $ git log FETCH_HEAD
  3. ローカルリポジトリに取り込んだ変更内容を確認する。
    $ git diff FETCH_HEAD
  4. マージする。
    $ git merge FETCH_HEAD
  5. リモートリポジトリの更新動作を確認する(実際には更新しない)。
    $ git push -n origin master:master
  6. リモートリポジトリを更新する。
    $ git push origin master:master

コンフリクト(競合)の解消

  1. コンフリクトしているファイルの一覧を表示する。
    $ git ls-files -u
  2. ファイルの状態を表示する。
    $ git status
  3. ファイルを修正する。
  4. 修正したファイルをインデックスに追加する。
    $ git add foo.php

コミットしたファイルの削除

  1. ファイルを削除する。
    $ git rm foo/bar
  2. 削除予定を確認する。
    $ git status
    # On branch master
    # Changes to be committed:
    #   (use "git reset HEAD <file>..." to unstage)
    #
    #       deleted:     foo/bar
    #
  3. コミットする。
    $ git commit -m "delete foo/bar"

リモートリポジトリの登録

git remote add name url

リモートリポジトリにプッシュ

git push repository refspec...

repositoryには以下のように指定する。

プロトコル 指定方法
rsync rsync://host-name/git-repository-path
HTTP http://host-name[:port-no]/git-repository-path
HTTPS https://host-name[:port-no]/git-repository-path
git git://host-name[:port-no]/git-repository-path
SSH ssh://[user-name@]host-name[:port-no]/git-repository-path
file [file://]git-repository-path
$ git push origin master

コミット時の状態に戻す

  1. 状態を確認する。
    $ git status
  2. チェックアウトする。
    $ git checkout foo/bar

リポジトリからプル

git pull repository refspec...
$ git pull origin master

Gitの制御ファイル

.gitignore

Gitで管理しないファイルを明示的に指定するには、.gitignoreというファイルを作成し、その中にGitで管理しないファイル名を記述する。

.gitkeep

Gitでは、中身が空のディレクトリをバージョン管理下に入れることはできない。空のディレクトリをバージョン管理下に入れるためには、ディレクトリの中に何か適当なファイルを作成しておく必要がある。ファイル名は何でも構わないが、慣習的に.gitkeepというファイル名が用いられることが多い。

GitHubの使い方

GitHubでリポジトリを作成する

GitHubにログインして、「New」ボタンをクリックする。

「Create a new repository」画面で、必要な項目を入力する。

項目 説明
Repository name リポジトリ名
Description リポジトリの説明
Public パブリックリポジトリ
Private プライベートリポジトリ
Initialize this repository with a README リポジトリを初期化する
Add .gitignore .gitignoreファイルを追加する
Add a license オープンソースライセンスを追加する

Publicを選択すると、誰でもこのリポジトリを見ることができる。誰がコミットできるかは選択できる。

Privateを選択すると、誰がこのリポジトリを見たりコミットできるかを選択できる。

「Initialize this repository with a README」にチェックを入れると、すぐに自分のコンピュータにリポジトリをクローンすることができるようになる。既存のリポジトリをインポートする場合は、チェックを外す。

必要な項目を入力して、「Create repository」ボタンをクリックすると、リポジトリが作成される。

既存のリポジトリをインポートする

すでに自分のコンピュータにリポジトリを作成している場合は、Git Bashで該当フォルダに移動して、次の手順を行う。

git init
git add index.html
git commit -m "first commit"
git remote add origin https://github.com/user/repository.git
git push -u origin master
スポンサーリンク
SEO [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送