記事の見出し
  • 意外と知らない? Gitコマンド 100本ノック
  • 概要
  • 参考文献
  • 100本ノック
  • Gitに馴染む
  • 1. メールアドレスをGitのグローバル設定に追加
  • 2. user.nameの設定値を表示
  • 3. user.emailの設定値を表示
  • 4. Gitヘルプシステムのヘルプ
  • 5. Gitで利用できる全コマンドのリスト
  • 6. すべてのGitコマンドをページで表示
  • 7. すべてのGitガイドを表示
  • 8. Gitの用語集(glossary)を表示
  • リポジトリの作り方と使い方
  • 9. カレントディレクトリ内のGitリポジトリを初期化
  • 10. Gitに関するカレントディレクトリの状態を表示
  • 11. ファイルをGitに追跡させる(ファイルはステージングエリアに追加される)
  • 12. 変更をGitリポジトリにコミットし、メッセージを付ける
  • 13. Gitリポジトリのログ(ヒストリー)を表示
  • 14. ログとともに、変更されたファイルを表示する
  • 15. リポジトリ内のファイルをリスト表示
  • ファイルの追跡と更新
  • 16. カレントディレクトリ内で追跡されているファイルと、リポジトリ内のファイルとの間に変更があれば、それを示す
  • 17. git addを実行してから、ログメッセージとともにgit commitを実行する
  • 18. ステージングエリアとリポジトリの間に変更があれば、それを示す
  • 19. git addで何が実行されるかを示す
  • 20. カレントディレクトリ内の新しいファイルをすべて追加する
  • 21. 履歴をコミットごとに1行で表示し、各コミットで変更されたファイルのリストを1行で表示する
  • 変更箇所をコミットする
  • 22. ファイルを作業ディレクトリとステージングエリアから削除(remove)する
  • 23. 作業ディレクトリとステージングエリアで、FILE1の名前をFILE2に変更する
  • 24. ステージングエリアに追加(add)すべき変更部分を手作業で選択(pick)する
  • 25. ステージングエリアをリセット(reset)して、ファイルをコミット予定から外す
  • 26. ファイルの「最後にコミットしたバージョン」をチェックアウトして、localの作業ディレクトリに入れる
  • Gitというタイムマシン
  • 27. ヒストリー表示。個々のコミットで、親コミットのSHA1 IDも表示する。
  • 28. ヒストリー表示。個々のコミットで、親コミットのSHA1 IDも短縮表示する。
  • 29. ヒストリーを簡潔に(各コミットを1行で)表示する
  • 30. ヒストリー表示。個々のコミットにおけるファイルの差分を示す。
  • 31. SHA1_IDにタグを付ける。タグ名にTAG_NAME、メッセージにTAG_MESSAGEを使う
  • 32. ヒストリー表示。patchとstatの出力を組み合わせる。
  • 33. ブランチ名を、特定のSHA1 IDに変換する(tagでもできる)
  • 34. 作業ディレクトリを、YOUR_SHA1_IDで指定されたバージョンと一致するものに変更する
  • 35. YOUR_SHA1IDを参照するTAG_NAMEという名のタグを作る。このタグには短いメッセージ(MESSAGE)が割り当てられる
  • 36. すべてのタグのリストを出力する
  • 37. TAG_NAMEというタグに関する情報を示す
  • ブランチ(支線)を辿る
  • 38. すべてのブランチのリストを表示
  • 39. BRANCHという名前のブランチを新規に作成する
  • 40. 作業ディレクトリを変更して、BRANCHという名前のブランチを反映させる
  • 41. リポジトリの履歴をすべてのブランチを通じて閲覧する
  • 42. git logコマンドのためにlolという名前の別名(alias)を作る(logのオプションは任意)
  • 43. すべてのブランチのリストをSHA1ID情報を付けて表示
  • 44. YOUR_SHA1IDを開始地点としてブランチNEW_BRANCHを作る
  • 45. BRANCH_BASEを開始地点としてBRANCH_NEWを作り、即座にチェックアウトする
  • 46. これまでに(git checkoutやgit reset等によって)行ったブランチ切替のすべての記録を表示する
  • 47. 現在進行中の作業(WIP)をスタッシュ(安全な隠し場所)に入れて、git checkoutを実行できるようにする
  • 48. スタッシュに対比させたWIPのリストを表示
  • 49. 最後にスタッシュに入れた内容を現在の作業ディレクトリに反映させ、スタッシュから消去する
  • ブランチをマージ(統合)する
  • 50. 2本のブランチ間の差分を最初に違いが現れた場所から相対的に示す
  • 51. YOUR_SHA1_IDを開始地点としてブランチNEW_BRANCHを作る
  • 52. BRANCHを現在の(カレント)ブランチにマージする
  • 53. git log -n 1の短縮形(最新のコミットだけを表示する)
  • 54. BRANCH1とBRANCH2に共通するベースコミットを表示する
  • クローン(複製)を作る
  • 55. ソースの位置にあるGitリポジトリのクローンを、複製先ディレクトリに作る
  • 56. すべてのブランチから、すべてのコミットログエントリを表示する(通常のgit logは、カレントブランチからのエントリだけを表示する)
  • 57. ローカルブランチだけでなく、リモート追跡ブランチも表示する
  • 58. SOURCEにあるGitリポジトリのクローンを、複製先ディレクトリに、ペアリポジトリとして作る(複製先ディレクトリの名前は、規約に従って .gitで終わるようにする)
  • 59. HEADのすべてのファイルを表示する
  • リモートとの共同作業
  • 60. masterブランチをチェックアウトする。現在のブランチに変更があれば、それらは破棄される。
  • 61. 現在のリポジトリにあるリモートの名前を表示する
  • 62. リモートの名前を、対応するリモートURLとともに表示する
  • 63. BOBという名前のリモートを追加する。そのリモートは、ローカルリポジトリ../math.bobを指し示す。
  • 64. リモートリポジトリREMOTEのリファレンスを表示する(現在のローカルリポジトリを指定するには、REMOTEとして . を使う)
  • 65. リモートとのネットワーク通信の内容を表示する
  • 変更をプッシュ(送出)する
  • 66. masterブランチをoriginという名前のリモートにプッシュする
  • 67. 現在のブランチを、デフォルトのリモート追跡ブランチにプッシュする。デフォルトは、git checkoutまたはgit push --set-upstreamにより設定される
  • 68. ORIGINという名前のリモートにあるNEW_BRANCHへのリモート追跡ブランチを作成する
  • 69. 名前にBRANCHという言葉が含まれているGit構成設定のリストを表示する
  • 70. BRANCHという名前のローカルブランチを削除する
  • 71. REMOTE_BRANCHという名前のリモートブランチを、originという名前のリモートから削除する
  • 72. SHA1IDにタグを付ける。タグ名にTAG_NAME、メッセージにTAG_MESSAGEを使う
  • 73. TAGNAMEという名前のタグを、originという名前のリモートにプッシュする
  • 74. すべてのタグをデフォルトのリモートにプッシュする
  • 75. originという名前のリモートから、TAGNAMEという名前のタグを削除する
  • 76. ローカルリポジトリから、TAGNAMEという名前のタグを削除する
  • 77. Git構成のpush.defaultを、simpleという値に設定する。これは、アクセスできるすべてのリポジトリに(グローバルに)設定される
  • 同期を保つ(プル)
  • 78. リポジトリと上流リポジトリと同期させる(git fetchとgit mergeの2つで構成される)
  • 79. リモートリポジトリから新しいコミットが取り込まれ、リモート追跡ブランチが更新される
  • 80. FETCH_HEADからの新しいコミットを、カレントブランチにマージする
  • 81. --ff-onlyスイッチを指定すると、FETCH_HEADがカレントブランチの子孫である場合に限り、マージが許可される(fast-forwardマージ)
  • ソフトウェア考古学(ログ)
  • 82. マージの結果であるコミットのリストを表示
  • 83. FILEに影響を与えたコミットのリストを表示
  • 84. コミットメッセージがSTRINGを含んでいるコミットのリストを表示
  • 85. 2つの日付の間に作られたコミットのリストを表示
  • 86. 著者名によるコミットの要約
  • 87. 著者名によるコミットの要約で、メールアドレスも表示する
  • 88. AUTHORを著者とするコミットのリスト(名前とメールアドレスを表示)
  • 89. 現在のコミットと、その親の間にあるコミット(と、そのファイル)のリスト
  • 90. 現在のコミットと、その親の間にあるコミット(と、テキストの変更)のリスト
  • 91. すべてのブランチのリストをコラムに分けて表示する
  • 92. 指定したSHA1_IDの名前を最も近いブランチをベースとして表示する
  • 93. 指定のSHA1_IDを含む、すべてのブランチを識別する(-rはリモート追跡ブランチを指定する。これを略すとローカルブランチだけが表示される)
  • 94. STRINGを含む、すべてのファイルを探し出す
  • 95. FILEのblame出力をコマンドラインで表示する
  • 96. FILEのblame出力をコマンドラインで、FILE-annotateに保存する
  • git rebaseを理解する
  • 97. masterブランチの先で、BRANCHブランチまでにあるコミットを表示
  • 98. カレントブランチをmasterの最新コミットにリベースする
  • 99. HEAD@{n}によって表現されるSHA1_IDを指し示すように、HEADをステージングエリアと作業ディレクトリの両方でリセットする
  • 100. masterの最新コミットをカレントブランチに、対話処理でリベースする。これによってエディタが開き、どのコミットをリベースに含めるかの取捨選択が可能となる
  • 101. 指定のコミットをカレントブランチにコピーする
  • ワークフローとブランチの規約
  • 102. ファイルの追加なしにコミットを作る
  • 103. BRANCHをカレントブランチにマージし、たとえfast-forwardであっても、マージコミットを作成する
  • Gitを研ぎ澄ませる
  • 104. ローカル(リポジトリ固有の)Git構成をリストで表示
  • 105. グローバル(ユーザー固有の)Git構成をリストで表示
  • 106. システム(サーバー全体の)Git構成をリストで表示
  • 107. 相対的な日付フォーマットで最後の2つのコミットを表示
  • 108. 相対的な日付フォーマットをローカルGit構成に保存
  • 109. ローカル(リポジトリ固有の)Git構成を編集する
  • 110. グローバル(ユーザー固有の)Git構成を編集する
  • 111. システム(サーバー全体の)Git構成を編集する
  • 112. ローカルGit構成ファイルの名前をプリントする
  • 113. ローカルGit構成vimで編集する
  • 114. Git構成core.excludesfileの設定値をプリントする
  • 最後に
  • 追伸
テックブログ情報
意外と知らない? Gitコマンド 100本ノック
ブログ株式会社エイチーム引越し侍 - Qiita
ブログ概要当社は、親会社である株式会社エイチームの経営理念をそのままに、引越しの比較サービス開始以降、大切にしてきた「三方よし」の理念を基本として、世の中に求められるサービスの創造を目指します。
QiitaQiita::a-hikkoshi
会社名株式会社エイチーム引越し侍
会社概要