Edited at

Git初心者のためのGit入門

More than 5 years have passed since last update.

私もGit初心者ですが、使いながら、ちょっとずつ書き溜めておいたものをとりあえず公開します。

これからも適宜変更していく予定です。


Gitとは

Gitでは、ファイルの状態を好きなときに更新履歴として保存しておくことができます。そのため、一度編集したファイルを過去の状態に戻したり、編集箇所の差分を表示したりすることができます。

古いファイルを元に編集したファイルで、他人の編集した最新ファイルを上書きしようとすると、サーバにアップロードした際に警告が出ます。そのため、チームにて開発する際に非常に協力なツールとなります。


Gitで使う用語


リポジトリ

プログラムやファイルを蓄積しておく場所


ローカルリポジトリ

現在作業中のリポジトリです。主に自分のPCや開発サーバーなどで作業する場合はローカルリポジトリとりなります。

また、リモートリポジトリからリポジトリをクローンして,自分のPC上やサーバー上に環境を構築することもできます。


リモートリポジトリ

外部サーバのリポジトリです。リモートリポジトリはローカルリポジトリを通じて作業を行います。


ワーキングツリー

実際に作業しているディレクトリのことです。


インデックス

ワーキングツリーでの編集後、リポジトリへのコミットの前に次のコミットの対象となる状態を保持している場所です。


ワーキングツリーとインデックス

Gitでは、コミットを実行した時にワークツリーから直接リポジトリ内に状態を記録するのでなく、その間に設けられているインデックスの設定された状態を記録するようになっています。

そのため、コミットでファイルの状態を記録するためには、まずインデックスにファイルを登録する必要があります。

使用例

git add .  // ワーキングツリーにて編集したディレクトリをインデックスに登録する

git commit //


ブランチ

履歴の流れを分岐して記録していくものです。

分岐したブランチは他のブランチの影響を受けないため、同じリポジトリ中で複数の変更を同時に進めていくことができます。


ローカルブランチ

ローカルリポジトリ内で管理されるブランチです。


リモートブランチ

リモートリポジトリにあるブランチです。


リモートトラッキングブランチ

リモートブランチをローカルリポジトリへトラッキング(追跡)するためのブランチです。

origin/master // originにあるmasterブランチをトラッキングする

origin:リモートリポジトリ名
master:ブランチ名


チェックアウト

リポジトリにあるブランチを,ワーキングツリーに展開することです。主にブランチを切り替える際などに利用します。

Gitでは,ブランチだけでなくタグや特定のコミット,リモートリポジトリのブランチなどもチェックアウトすることができます。


コミット

インデックスに追加したファイルをリポジトリに登録します。その際には作業範囲や内容をメッセージとして追加します。


プッシュ

ローカルリポジトリの変更履歴をリモートリポジトリに共有します。

プッシュを行うことで、リモートリポジトリに自分の変更履歴がアップロードされて、リモートリポジトリ内の変更履歴がローカルリポジトリの変更履歴と同じ状態になります。


リビジョン

コミット毎に作成されるハッシュ値のことです。Gitではハッシュ値を使って世代管理を行っています。


HEAD

現在チェックアウトしているブランチの最新コミットを指定する代名詞。


FETCH_HEAD

最後に取得したリモートブランチの最新コミットを指定する代名詞。


ORIG_HEAD

前のHEADの値を指定する代名詞。


MERGE_HEAD

マージ中に生成され,ブランチにマージするコミットが記録されている代名詞。


よく使うgitコマンド

コマンド
内容

git init
リポジトリを作成する

git clone
既存のリポジトリの複製を作る

git status
変更の加えられたファイルを複製する

git diff
ファイルに加えられた変更点をdiff形式で表示する

git add
ファイルやディレクトリをインデックスに追加する
git add . (カレントディレクトリの指定)
git add --all (全てのファイルを指定)

git commit
インデックスに追加されたファイルをコミットする

git log
コミットログを見る

git reset
直前のコミットを取り消す
git reset --hard <ハッシュ値> //戻りたい時点のハッシュ値に戻す

git branch
ブランチ一覧を表示する。

git fetch
すべてのリモートブランチをコピーする

git merge (リモートリポジトリ名) / (ブランチ名)
指定したブランチを現在チェックアウトしているブランチにマージする

git mergetool
マージの際にコンフリクトしたファイルをマージするツール

git rm ファイル名
ファイルの削除
-r でディレクトリの削除
--chached でハードディスク上にはファイルを残し、ステージングエリアから除外

git remote
リモートリポジトリを表示

git reflog
コミットやmergeしたときのログを見る

git revert
作業ツリーを指定したコミット時点の状態にまで戻す

git config --help
ヘルプを見る


本記事の参考サイト

参考にさせていただいたサイトを掲載しておきます。

サルでもわかるGit入門 〜バージョン管理を使いこなそう〜 | どこでもプロジェクト管理バックログ

Gitを使いこなすための20のコマンド | SourceForge.JP Magazine

Gitチートシート - Qiita

分散バージョン管理 Git 役立つコマンド一覧

Gitコンフリクト解消ガイド(git mergetoolの使い方) - Qiita

こわくない Git