前回に引き続き、時間を見つけてGitの主要なコマンドをまとめました。非常に素晴らしい、高解像度(1759*3162)のチートシートを見つけました。
ファイルの表示、追加、コミット、削除、復元、変更のリセット
git help
git show # 特定のコミットの内容を表示 git show $id
git co –
git co . # ワークスペースの変更を破棄
git add
git add . # 変更されたすべての作業ファイルをステージングエリアにコミット
git rm
git rm
git reset
git reset – . # ステージングエリアから作業ファイルに復元
git reset –hard # 直近のコミットの状態に戻す。つまり、前回のコミット以降のすべての変更を破棄
git ci
git ci –amend # 直前のコミットメッセージを修正
git revert <$id> # 特定のコミットの状態に戻す。この復元操作自体も新たなコミットオブジェクトを作成する
git revert HEAD # 直前のコミットの状態に戻す
ファイルの差分(diff)を表示
git diff
git diff <$id1> <$id2> # 2つのコミット間の差分を比較
git diff
git diff –staged # ステージングエリアとリポジトリの差分を比較
git diff –cached # ステージングエリアとリポジトリの差分を比較
git diff –stat # 統計情報のみを比較
コミット履歴の表示
git log git log
git log -p
git log -p -2 # 直近2回の詳細な変更内容(diff)を表示
git log –stat # コミットの統計情報を表示
tig
Macではtigをdiffとlogの代わりに使用できます。brew install tig
Git ローカルブランチ管理
ブランチの表示、切り替え、作成、削除
git br -r # リモートブランチを表示
git br <new_branch> # 新しいブランチを作成
git br -v # 各ブランチの最終コミット情報を表示
git br –merged # 現在のブランチにマージ済みのブランチを表示
git br –no-merged # 現在のブランチにまだマージされていないブランチを表示
git co
git co -b <new_branch> # 新しいブランチを作成して、そのブランチに切り替え
git co -b <new_branch>
git co $id # 特定の過去のコミットをチェックアウトする。ブランチ情報はなく、他のブランチに切り替えると自動的に削除される
git co $id -b <new_branch> # 特定の過去のコミットをチェックアウトし、新しいブランチとして作成
git br -d
git br -D
ブランチのマージとリベース
git merge
git merge origin/master –no-ff # Fast-Forwardマージをせず、マージコミットを生成する
git rebase master git co <branch> && git rebase master && git co master && git merge <branch> と同等
Git パッチ管理(複数マシンでの開発同期に便利)
git diff > ../sync.patch # パッチを生成
git apply ../sync.patch # パッチを適用
git apply –check ../sync.patch # パッチが正常に適用できるかテスト
Git スタッシュ管理
git stash # 一時退避
git stash list # すべてのスタッシュを一覧表示
git stash apply # 退避した内容を復元
git stash drop # スタッシュを削除
Git リモートブランチ管理
git pull # リモートリポジトリのすべてのブランチの更新を取得し、ローカルにマージ
git pull –no-ff # リモートリポジトリのすべてのブランチの更新を取得し、ローカルにマージするが、Fast-Forwardマージはしない
git fetch origin # リモートリポジトリの更新を取得
git merge origin/master # リモートのmasterブランチを現在のローカルブランチにマージ
git co –track origin/branch # 特定のリモートブランチを追跡する対応するローカルブランチを作成
git co -b <local_branch> origin/<remote_branch> # リモートブランチをベースにローカルブランチを作成。機能は上記と同じ
git push # すべてのブランチをプッシュ
git push origin master # ローカルのmasterブランチをリモートのmasterブランチにプッシュ
git push -u origin master # ローカルのmasterブランチをリモートにプッシュ(リモートにmasterブランチがなければ作成。リモートリポジトリの初期化に使用)
git push origin <local_branch> # リモートブランチを作成。originはリモートリポジトリ名
git push origin <local_branch>:<remote_branch> # リモートブランチを作成
git push origin :<remote_branch> # 先にローカルブランチを削除し(git br -d
Git リモートリポジトリ管理
GitHub
git remote -v # リモートサーバーのアドレスとリポジトリ名を表示
git remote show origin # リモートサーバーのリポジトリの状態を表示
git remote add origin git@ github:robbin/robbin_site.git # リモートリポジトリのアドレスを追加
git remote set-url origin git@ github.com:robbin/robbin_site.git # リモートリポジトリのアドレスを設定(リモートリポジトリのアドレス変更に使用) git remote rm
リモートリポジトリの作成
git clone –bare robbin_site robbin_site.git # バージョン管理下のプロジェクトからベアリポジトリを作成
scp -r my_project.git git@ git.csdn.net:~ # ベアリポジトリをサーバーにアップロード
mkdir robbin_site.git && cd robbin_site.git && git –bare init # サーバー上でベアリポジトリを作成
git remote add origin git@ github.com:robbin/robbin_site.git # リモートリポジトリのアドレスを設定
git push -u origin master # クライアントからの初回プッシュ
git push -u origin develop # ローカルのdevelopブランチをリモートのdevelopブランチに初めてプッシュし、追跡する
git remote set-head origin master # リモートリポジトリのHEADをmasterブランチに設定
コマンドでリモートリポジトリとローカルリポジトリの追跡設定も可能
git branch –set-upstream master origin/master
git branch –set-upstream develop origin/develop
ヒント:大きな画像は、新しいウィンドウで開いてご覧ください
