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
プロンプト文字列の単純な設定例(作成中)