git - バージョン管理システムを利用する

スポンサーリンク

Gitは分散型のバージョン管理システムになります。GitはSubversionのような集中型のバージョン管理システムと異なり、ファイルのすべての変更履歴をそれぞれのマシンが持ちます。そのため、リポジトリを管理しているサーバーにアクセスできなくても、プロジェクトの履歴を確認することができます。

Gitのインストール

Gitの初期設定(名前とメールアドレスの設定)

リポジトリの作成とクローン

コマンド説明
git initリポジトリの作成
git cloneリポジトリのクローン

リポジトリの作成とクローンの例

リポジトリへの記録

コマンド説明
git statusステージング状態の確認
git addファイルの追跡とファイル修正後のステージング
git diffステージングと作業ディレクトリの比較
git commitコミット。ステージングされたファイルをリポジトリへ記録
git rmファイルの追跡解除と削除
git mvファイルの移動(名前の変更)
ファイル説明
.gitignore無視するファイルを設定

リポジトリへの記録の例

コミット履歴の閲覧

コマンド説明
git logコミット履歴の閲覧
git checkout <コミットのチェックサム>コミットのチェックアウト。
チェックサムは一部でも可(一意になるよう7文字ぐらいの指定が多い)
記録したコミットを作業ディレクトリに反映

コミット履歴の閲覧の例

作業のやり直し

コマンド説明
git commit --amendコミットのやり直し
git resetステージしたファイルの取り消し
git checkout -- <ファイル>ファイルへの変更の取り消し

作業のやり直しの例

リモートでの作業

コマンド説明
git remote -vリモートサーバーの確認
git remote addリモートリポジトリの登録を追加
git fetchフェッチ。リモートリポジトリの内容をダウンロード
git pullフェッチとマージの連続操作
git pull --rebaseフェッチとリベースの連続操作
git pushプッシュ。リモートリポジトリへの記録
git remote showリモートリポジトリ情報の表示
git remote renameリモートリポジトリの登録の名前の変更
git remote rmリモートリポジトリの登録を解除

リモートでの作業の例

タグ

コマンド説明
git tagタグの一覧表示
git tag -l <パターン>パターンでのタグ検索
git tag <タグ名>軽量版のタグ。コミットのチェックサムを追加でタグの後付け
git tag -a注釈付きのタグの追加。-mの追加でエディタを開かずメッセージを追加。コミットのチェックサムを追加でタグの後付け
git show <タグ名>タグが付いたコミットの情報を表示
git tag -d <タグ名>タグの削除
git push origin <タグ名>タグの共有。originはリモートリポジトリの名前
git checkout -b <ブランチ名> <タグ名>ブランチを作成してタグのチェックアウト

タグの例

エイリアス

コマンド説明
git config --global alias.co checkoutエイリアスの設定(コマンドは設定例の一つ)

ブランチ

コマンド説明
git branch <ブランチ名>ブランチの作成
git checkout <ブランチ名>ブランチの切り替え
git merge <マージ先のブランチ名>現在いるブランチにマージ先のブランチをマージ。
マージ完了後にマージ先のブランチは必要がなければ削除しても良い
git mergetool競合内容をマージツールを使って解決 
vimdiff, Meld, opendiff, WinMerge等マージツール
git branch -d <ブランチ名>ブランチの削除
git branchブランチの一覧表示

ブランチの例

パッチの適用

このパッチの適用はコミットの一つ一つをパッチと考えてコミット履歴の途中を変更した場合にそのパッチを再適用していきコミットを作成し直すようなコマンドのことを述べています

コマンド説明
git rebase <ブランチ名>パッチを取得するブランチを指定し適用して現在のブランチのパッチを適用
git cherry-pick現在のブランチに特定のコミットのパッチを適用
git revert特定のコミットを元に戻す

git rebaseの例(作成中)
git cherry-pickの例(作成中)
git revertの例(作成中)

Tips

プロンプト文字列の単純な設定例(作成中)