Gitコマンドチートシート
Gitには約150のサブコマンドがあり、そのいくつかは危険なほど似ています、reset vs restore、checkout vs switch、rm vs restore --staged。このチートシートは、実際に打ち込むコマンドを状況別にまとめています:日常のワークフロー、ブランチ、ミスの取り消し、stash。グループを選んでブロックをコピーしてください。
チートシートの使い方
-
1
トピックを選ぶ
日常、ブランチ、取り消し、stash:それぞれが異なる思考モードに対応します。
-
2
ブロックをざっと見る
各行は完全に動作するコマンドです:明示的に示されない限り、山かっこのプレースホルダーはありません。
-
3
必要なものをコピー
ターミナルに貼り付け、ブランチ名やコミットのSHAを調整して実行します。
熟練ユーザーでもなおコマンドに混乱する理由
Gitのporcelainは継ぎ足しで成長しました。checkoutは「ブランチを切り替える」と「ファイルを復元する」に多重定義され、resetは「作業を破棄する」と「ブランチのポインターを動かす」の間に位置します。Git 2.23以降は、より明確な動詞があります。
| 旧 | 新(より明確) |
|---|---|
git checkout branch |
git switch branch |
git checkout -b new |
git switch -c new |
git checkout -- file |
git restore file |
git checkout --staged file |
git restore --staged file |
安全な取り消しのはしご
- 1つのファイルを復元:
git restore path/to/file(未ステージ)またはgit restore --staged path/to/file(ステージ済みだが未コミット)。 - 直前のコミットを取り消し、変更を残す:
git reset --soft HEAD~1。 - 直前のコミットを取り消し、変更を破棄:
git reset --hard HEAD~1(破壊的。未コミットの作業がないことを確認)。 - 共有されたコミットを取り消す:
git revert <sha>、古いコミットを打ち消す新しいコミットを作ります。プッシュ済みの履歴でも安全です。
stashのエチケット
- 常にメッセージ付きでstashする:
git stash push -m "wip: APIを接続中"。 - popする前に
git stash listでstashを一覧表示する、無名のstashはすぐに溜まります。 git stash popは適用して削除し、git stash applyは適用して残します。
復旧
ハードリセットの後にコミットを失いましたか?おそらくまだreflogにあります。git reflogを実行して過去90日のHEADの移動をすべて確認し、git reset --hard <sha>で良い状態に戻ってください。
よくある質問
Git 2.23(2019年8月)以降、プロジェクトは多重定義されたcheckout動詞を2つに分けました。switchはブランチを変え、restoreはファイルを直します。後方互換のため両方とも存在しますが、シェルの履歴を見返すときに読みやすくなります。
resetはブランチのポインターを(任意で作業ツリーも)動かします。revertは前のコミットを取り消す新しいコミットを作ります、共有ブランチで安全です。checkout / restoreは履歴を書き換えずに作業ツリーのファイルを変えます。
git revert <sha>で補償するコミットを追加し、それをプッシュします。チームが明示的に合意していない限り、共有ブランチでのgit reset --hard+git push --forceは避けてください。
コマンドはページ内で描画される静的なテキストです。選択したトピックは、対応するコマンドを表示するためだけにサーバーへ送信され、2つのステップ間を移動するときはページのリンクにも含まれます。保存や記録はされません。
関連ツール
Webpack設定ジェネレーター
短いフォームからwebpack 5のwebpack.config.jsを生成します。entry・出力フォルダー・モードを設定し、TypeScript、Babel、CSSローダー、HtmlWebpackPlugin、開発サーバーを切り替えるだけです。
CMYK から RGB への変換
標準的な計算式で CMYK の割合をおおよその RGB 値と Hex 値に変換し、画面用にすばやく確認できます。
.gitignore ジェネレーター
Laravel、Node.js、Python、Rails のプロジェクト用除外ルールを組み合わせます。結果をコピーするか、.gitignore 入りの ZIP をダウンロードできます。個人用ルールは別に表示します。
16進数から10進数への変換ツール
16進数を10進数(10進法)に変換します。メモリアドレス、エラーコード、RGBチャンネル、任意精度の整数に対応します。
Dockerfileジェネレーター
5つのアプリ構成に合うDockerfileと.dockerignoreを作成。実際の起動対象、作業ディレクトリ、内部ポートを入力し、両方のファイルを確認できます。
Markdownリンク生成ツール
URLとアンカーテキストからMarkdownリンクの記法を生成します。タイトルのツールチップや、長い文書を読みやすく整える参照形式のリンクにも対応しています。
このツールは他の言語でも利用できます
- Ściąga z poleceń Git [PL]
- คู่มือคำสั่ง Git สำหรับการใช้งานอย่างรวดเร็วและสะดวก [TH]
- Folha de Dicas de Comandos Git [PT]
- Bảng tra nhanh lệnh Git [VI]
- Git-Befehlsübersicht [DE]
- Git-kommandon fusklapp [SV]
- Lembar Contekan Perintah Git [ID]
- Hoja de trucos de comandos de Git [ES]
- Feuille de triche des commandes Git [FR]
- Git 명령어 치트시트 [KO]
- ورقة مرجعية لأوامر Git [AR]
- Git-commando's spiekbriefje [NL]
- Git Komutları Kopya Kağıdı [TR]
- Git命令速查表 [ZH]
- Git Command Cheatsheet [EN]
- Promemoria dei comandi Git [IT]
- Шпаргалка по командам Git [RU]