よく使うコマンドを素早く調べる

公開日: 2026-07-30 11:19 更新日: 2026-08-02 00:00 3422文字 18 min read ... ページビュー

この記事では、リポジトリの初期化、構成、ステータス表示、ファイル操作、ブランチ管理、マージ変更、コミット操作、履歴追跡、タグ管理、緊急復旧などのコア機能をカバーする、Git開発で一般的に使用されるコマンドを実際のワークフローに分類します。安全性を強調し、共有履歴の危険な変更(リベース、リセットハードなど)を避けるように警告し、reflog、cherry-pick、git bisectなどのツールを使用して問題を効率的に特定し、変更を管理することを推奨します。

よく使うコマンドを素早く調べる

この記事では、一般的なGitコマンドを開発プロセスで整理します。サンプル内の<branch><commit><file>などは、実際のブランチ名、コミットハッシュ、ファイルパスに置き換える必要があります。

履歴を変更するコマンドまたはファイルを削除するコマンドを実行する前に、git statusを実行し、必要に応じてgit stash -uを使用して現在の変更を一時的に保存することをお勧めします。

Gitワークフロー

flowchart LR
    A[工作区] -->|git add| B[暂存区]
    B -->|git commit| C[本地仓库]
    C -->|git push| D[远程仓库]
    D -->|git fetch / git pull| C
    B -->|git restore --staged| A
    C -->|git restore / git reset| A
ゾーン説明共通コマンド
ワークスペースWorkspace現在編集中のファイルgit diff``git restore
一時的な領域次回の提出準備に含める内容git add``git diff--staged
ローカル倉庫のコミットされたバージョン履歴git commit``git log
リモート倉庫。GitHub、GitLabなどのリモートコピーgit fetchgit pullgit push

リポジトリの初期化と複製

ローカルリポジトリの初期化

現在のディレクトリでGitリポジトリを初期化する

git init

初期化してデフォルトブランチをmainに指定

git init -b main

リモート·ウェアハウスのクローン作成

git clone https://github.com/<owner>/<repo>.git
git clone git@github.com:<owner>/<repo>.git

指定したディレクトリへのクローン

git clone <repository-url> <directory>

最新のコードのみが必要なシナリオに適した、最後のコミットのみをクローンする

git clone --depth 1 <repository-url>

Gitの設定

グローバルユーザー名の

git config --global user.name "Your Name"

グローバルメールボックスのセットアップ

git config --global user.email "you@example.com"

新規ウェアハウスのデフォルトブランチをmainに設定

git config --global init.defaultBranch main

すべての構成とそのソースを表示

git config --list --show-origin

現在のウェアハウスで有効なユーザー名とメールボックスの表示

git config user.name
git config user.email

--globalを削除すると、構成は現在の倉庫でのみ有効になります。グローバル構成は、ウェアハウスレベル構成によって上書きされます。

倉庫ステータスの表示

ワークスペースおよびステックスペースのステータスの表示

git status

ステータスおよびの分岐を形式で表示

git status -sb

ステージングファイル

指定ファイルのステージング

git add <file>

指定ディレクトリのステージング

git add <directory>

カレントディレクトリ内のすべての追加、変更、削除をステージング

git add .

ステージングするコードブロックの対話型選択

git add -p

スクラッチ領域からファイルを除去するが、ワーク領域の修正は維持する

git restore --staged <file>

ファイルを削除し、削除操作をスクラッチ領域に追加

git rm <file>

ファイルのトレースを停止するが、ローカル·ファイルは保持

git rm --cached <file>

ファイルの移動または名前の変更

git mv <old-path> <new-path>

コミットの作成

エディタを开く発行指示の移入

git commit

提出指示の直接入力

git commit -m "docs: update Git command guide"

追跡されたファイルのすべての変更をステージングし、コミットする

# 不包含尚未被 Git 跟踪的新文件
git commit -am "fix: update tracked files"

最后のコミットの変更およびコミットの指示の再集

git commit --amend

最新の提出物に新しい一時的な内容を追加し、提出物の説明を残す

git commit --amend --no-edit

git commit --amendは新しいコミットハッシュを作成します。すでにプッシュされ、他の人が使用しているコミットは、変更できません。

オペレーションブランチ

分岐の表示

ローカルブランチを表示

git branch

ローカルおよびリモートブランチの表示

git branch -a

ブランチとその上流追跡関係の表示

git branch -vv

現在のブランチ名の表示

git branch --show-current

分岐の作成と切り替え

現在のコミットから新しいブランチを作成しますが、切り替えはしません

git branch <branch>

指定した発行、分岐またはラベルからの新規分岐の作成

git branch <branch> <start-point>

既存の支店に切り替える

git switch <branch>

新しいブランチを作成してすぐに切り替える

git switch -c <new-branch>

指定した開始点から新しいブランチを作成し、すぐに切り替える

git switch -c <new-branch> <start-point>

前のブランチに戻る

git switch -

分岐の名前変更と削除

現在のブランチ名の変更

git branch -m <new-name>

指定した分岐の名前変更

git branch -m <old-name> <new-name>

マージされたローカルブランチの削除

git branch -d <branch>

マージ済みかどうかをチェックせずにローカルブランチを強制削除

git branch -D <branch>

リモート·ブランチの削除

git push <remote> --delete <branch>

リモート倉庫の管理

リモートウェアの名前とアドレスの表示

git remote -v

リモートウェアハウスを追加

git remote add origin <repository-url>

Forkプロジェクトの上流倉庫の追加

git remote add upstream <upstream-url>

リモートウェアアドレスの変更

git remote set-url origin <new-url>

リモート·ウェアハウスの名前の変更

git remote rename <old-name> <new-name>

リモートウェアハウス構成の削除

git remote remove <remote>

リモート·ウェアハウスの詳細の表示

git remote show origin

取得、プル、プッシュ

現在のブランチを変更せずに、リモートリポジトリの新しいコミットと参照を取得する

git fetch origin

すべてのリモートリポジトリを取得し、削除されたリモートブランチ参照をクリーンアップする

git fetch --all --prune

現在の分岐に対応するリモート分岐をプルしてマージする

git pull

早送りマージのみを許可し、マージコミットの自動生成を回避

git pull --ff-only

プル後にrebaseを使用したローカルコミットの整理

git pull --rebase

最初にブランチをプッシュし、上流追跡関係を確立する

git push -u origin <branch>

現在のブランチのプッシュ

git push

すべてのローカルタグをプッシュする

git push origin --tags

通常のコラボレーションではgit push --forceを直接使用しないでください。リモート履歴を上書きする必要がある場合は、git push --force-with-leaseが優先されます。git push --force-with-leaseは、リモートブランチで予期しない更新が発生した場合に上書きを拒否します。

分岐のマージ

指定した分岐を現在の分岐にマージ

git merge <branch>

早送りが可能な場合でも、マージコミットを1つ作成

git merge --no-ff <branch>

競合が発生した後に競合ファイルを表示する

git status

競合が解決され、ファイルがステージングされたら、マージを完了する

git add <resolved-file>
git commit

現在の連結を破棄し、連結前の状態に戻す

git merge --abort

バリアントブランチ

の分岐のコミットを宛先分岐に再

git rebase <base-branch>

インタラクティブな整理最新 3 件の投稿

git rebase -i HEAD~3

コンフリクトを解決し、ステージング後にベース変更を続行

git add <resolved-file>
git rebase --continue

現在適用できないコミットのスキップ

git rebase --skip

変基を放棄して元の状態に戻す

git rebase --abort

Rebaseはコミット履歴を書き換えます。公開され、他の人が開発した共有ブランチにはrebaseを実行しないでください。

提出物の選定

别の分岐から指定したコミットをの分岐に

git cherry-pick <commit>

競合を解決した後の継続 cherry-pick

git add <resolved-file>
git cherry-pick --continue

Cherry-Pickを削除

git cherry-pick --abort

ワークスペースおよびスクラッチ領域の変更を取り消す

指定したファイルがステージングされていない変更を破棄する

git restore <file>

指定したコミットのバージョンにファイルを復元する

git restore --source=<commit> <file>

ステージングを解除するが、ワークスペースの変更は保持する

git restore --staged <file>

ステージング領域とワークスペースの両方をHEADにリストア

# 会丢弃所有未提交修改
git restore --staged --worktree :/

提出の取り消し

バックコミットの作成

新しいコミットを作成し、最後のコミットの変更を取り消す

git revert HEAD

新しいコミットを作成し、コミットされた変更を取り消す

git revert <commit>

git revertは元のコミットを削除せず、共有リポジトリにプッシュされた履歴に適しています。

現在の分岐ポインタの移動

最後のコミットを取り消し、変更を保持し、ステージング状態を維持する

git reset --soft HEAD~1

最新のコミットを取り消し、ワークスペースの変更は保持するがステージングを解除する

git reset HEAD~1

の分岐、ステージ

git reset --hard <commit>

+++危険な操作:reset --hardclean git reset --hardでは、ワークスペースとステージング領域のコミットされていない変更が破棄されます。

git clean -fdは、追跡されていないファイルとディレクトリを完全に削除します。実行する前にプレビューコマンドを使用する

削除されるコンテンツのみプレビュー

git clean -nd

誤りを確認してから実行する

git clean -fd

+++

reflogを使用したエラー操作のリカバリ

HEADおよび分岐ポインタのローカル移動記録の表示

git reflog

誤動作前のコミットからリカバリ·ブランチを作成し、セキュリティを強化

git switch -c recovery/<name> <commit>

コミットが正しくないことを確認した後、現在のブランチを直接過去に戻すこともできます

git reset --hard <commit>

reflogはローカルレコードであり、pushとともにアップロードされず、他のコンピュータから操作レコードを直接復元することはできません。

一時保管の変更

追跡されたファイルの変更を保存する

git stash push -m "WIP: description"

未追跡ファイルの同時保存

git stash push -u -m "WIP: description"

倉庫リストの表示

git stash list

最新の保管時の詳細な差異を表示

git stash show -p

最後の保存を適用してリストから削除する

git stash pop

指定保管を適用しますが、リストには残ります

git stash apply stash@{0}

指定ストレージの削除

git stash drop stash@{0}

すべての倉庫を空にする

git stash clear

コミット履歴の表示

コミット履歴全体を見る

git log

単一行、分岐図、参照装飾を使用した全履歴の表示

git log --oneline --graph --decorate --all

最新 10 件の投稿を見る

git log -10 --oneline

指定した著者の提出を表示する

git log --author="<name>"

指定した時間以降のコミットの表示

git log --since="2026-01-01"

ファイル履歴の表示と名前の変更の追跡

git log --follow -- <file>

指定したコミットの内容と相違点の表示

git show <commit>

コードの行が最後に変更されたコミットを確認する

git blame -L <start>,<end> <file>

二分探索を使用した位置

git bisectは、履歴の中間点を継続的にテストすることで、初めて問題を導入するコミットを特定します。

2 分検索開始

git bisect start

現在のコミットを問題としてマークする

git bisect bad

既知の正常な履歴コミットを正常としてマークする

git bisect good <good-commit>

Gitは自動的に中間コミットに切り替わります。テスト後のマークアップ:

現在のコミットは正常

git bisect good

現在提出中の問題

git bisect bad

現在のコミットはテストできません。スキップ

git bisect skip

現在のバイナリ検索プロセスを確認する

git bisect log

gitkで現在のスコープを視覚化するにはgitkのネイティブインストールが必要

git bisect visualize

二分探索を終了し、開始前の分岐を返す

git bisect reset

テストスクリプトを使用した二分検索の自動化

# 脚本退出码为 0 表示正常,1~127(除 125)表示有问题,125 表示跳过
git bisect run <test-command>

ラベルの管理

すべてのラベルを表示

git tag

ノート·ラベルの作成

git tag -a v1.0.0 -m "Release v1.0.0"

指定したコミットのラベルの作成

git tag -a v1.0.0 <commit> -m "Release v1.0.0"

ラベル情報の表示

git show v1.0.0

指定されたラベルのプッシュ

git push origin v1.0.0

ローカルタグの削除

git tag -d v1.0.0

リモート·ラベルの削除

git push origin --delete v1.0.0

Forkのアップストリームウェアハウスの同期

初回設定

# origin 指向自己的 Fork,upstream 指向原仓库
git remote add upstream <upstream-url>
git remote -v

毎日の同期化

git fetch upstream --prune
git switch main
git merge --ff-only upstream/main
git push origin main

ローカルmainに独自のコミットが存在し、マージを早送りできない場合は、コミットが共有されていないことを確認した後で次のように使用できます。

git fetch upstream --prune
git switch main
git rebase upstream/main
git push --force-with-lease origin main

2 番目の方法は、Fork 内のmainブランチの履歴を書き換えます。複数の人がブランチを使用する場合は、リベースよりもマージを優先します。

.gitignoreで無視されるファイルの削除

1.現在のディレクトリ内のすべてのファイルのGit 追跡ステータスを削除する(ローカルファイルは削除しない)

git rm -r --cached .

2.すべてのファイルをスクラッチ領域に再追加します(Gitは現在の.gitignoreルールに従って厳密にフィルタリングされます)

git add .

3.新しいクリーンステータスを提出する

git commit -m "chore: 重新应用 .gitignore 规则并清理缓存"

気に入ったならばコメントを残してくださいね~

... ページビュー
© 2026 跨越星轨的客 @Hoshiumi
Powered by theme astro-koharu · Inspired by Shoka