私も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