0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

日常で使うGitコマンドを目的別に整理する【switch/restore対応】

0
Posted at

restoreresetfetchpullなど、似たGitコマンドの使い分けを目的別に整理しました。Git 2.23以降のswitch/restoreに対応しています。

変更を記録する(add / commit)

addでステージに追加し、commitで記録する2段階の流れです。

git add <ファイル名>        # ステージに追加
git add .                   # 全変更を追加
git commit -m "メッセージ"  # コミット

変更差分はgit diff(ステージ前)とgit diff --staged(ステージ後)で確認できます。

変更を取り消す(restore / revert)

Git 2.23以降はrestoreで取り消し操作が統一されています。

git restore <ファイル名>          # ワーキングツリーの変更を取り消す
git restore --staged <ファイル名> # ステージを取り消す(変更は残る)

プッシュ済みのコミットを打ち消すにはgit revert <コミットID>を使います。履歴を書き換えないため安全です。

ブランチを操作する(switch / merge)

switchはGit 2.23で導入されたブランチ切り替え専用コマンドです。従来のcheckoutからブランチ操作とファイル復元が分離されました。

git branch <ブランチ名>      # 作成
git switch <ブランチ名>      # 切り替え
git switch -c <ブランチ名>   # 作成して切り替え
git merge <ブランチ名>       # 現在のブランチにマージ

リモートと同期する(fetch / pull / push)

fetchは取得のみ、pullは取得+マージ、pushは送信です。

git fetch origin                  # 取得のみ
git pull origin main              # 取得+マージ
git pull --rebase origin main     # リベース型(履歴がきれいになる)
git push -u origin <ブランチ名>  # 送信(初回は-uで上流設定)

--rebaseをつけるとマージコミットが作られず、履歴がきれいになります。git config --global pull.rebase trueで常時リベース型にできます。

作業を一時退避する(stash)

ブランチ切り替え前に未コミットの変更を退避できます。

git stash       # 退避
git stash pop   # 復元して退避を削除
git stash apply # 復元(退避は残す)

pullの前にstashで退避する習慣をつけると、コンフリクトの発生を大幅に減らせます。

まとめ

日常の開発はswitchaddcommitpushのサイクルがほとんどです。途中でstashで退避し、間違えたらrestoreで戻します。このサイクルが回れば一人での開発はほぼカバーできます。

この記事の詳細版は Zenn で公開しています: Gitの実践コマンドを目的別に整理する

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?