QiitaやZennを見ていると、「アウトプットが大事」という記事をよく見かけます。

ふと自分を振り返ると、インプットはよくしているものの、アウトプットはほとんどできていないことに気づきました…。 そこで今後はインプットだけでなくアウトプットも意識して行っていこうと思い、新しくカテゴリーを追加して記事を書くことにしました(三日坊主にならないよう頑張りたいところです)。

今回のお題はタイトル通り、「最近、Git操作をあえてコマンドで行っている」というお話です。

なぜ今更、Git操作をコマンドで始めたのか?

理由を考えてみると、主に以下の3つが挙げられます。

  • GUIツール(TortoiseGitなど)が使えず、コマンド操作のみを推奨・要求されるプロジェクトに入ったときのため
  • Windows 11でフォルダ右クリックの挙動が変わったため(Shift + 右クリックで従来のメニューが出ますが、つい忘れがちになります)
  • シンプルに、コマンドで操作できた方がかっこいいから

こうした理由から、まずは個人開発の成果物をGitHubへpushする際に少しずつコマンド操作に慣れていき、最近では実際のプロジェクトでも使い始めています(不安なときは、日頃から使い慣れているメンバーに教えてもらいながら進めています)。

プロジェクトでよく使っているコマンド一覧

※細かいオプションなどは省略しています。

git log

コミットログの参照に使用します。最新の状態になっているかチェックし、先祖返りやデグレを防ぐために活用しています(最新の確認だけなら git show もありですが、そこは使い分けということで)。

2026/09/22追記)

最近はgit log --onelineのほうが使っていますね。git logだけだと情報が多いので。

git status

コミット前に、どのファイルが変更されたか確認するために使用しています。

git branch

現在のブランチを確認するために使用しています(エディタの右下などに表示されていたりもしますが、ご愛嬌ということで)。リモートブランチの内容も知りたければgit branch -aで

git switch -c [ブランチ名]

ブランチの作成・切り替えを行うコマンドです。プロジェクトのメンバーが使っているのを見て教えてもらいました。新しいブランチの作成と切り替えを同時に行いたいときによく使っています。

PR確認とかでリモートのブランチを引っ張ってくるときはfetch後にgit switch [branch name]使ったり。

git pull

言わずと知れた定番コマンドです。リモートリポジトリの最新変更を取り込む際に使用します。

git add -A

git status で変更ファイルを確認した後に使用しています。-A オプションを付けることで、すべての変更(追加・変更・削除)をステージングできます。個別に追加したい場合は git add [ファイル名] と使い分けています。

2026/09/22追記)

最近はもっぱらgit add .でstaginしちゃいます。

git commit -m [コミットメッセージ]

ステージングされた変更をコミットするために使用します。基本的にはコミットメッセージも一緒に指定するため、-m オプションを付けて実行しています。

2026/09/22追記)

最近は諸事情でコミットメッセージ間違えてしまったとき、初回ならgit commit --amend -m "[コミットメッセージ]"なんかも使用

git push origin [ブランチ名]

ローカルでコミットした変更をリモートリポジトリに反映するために使用します(設定で origin やブランチ名を省略することも可能ですが、ここでは割愛します)。

2026/09/22追記)

今のPJではコマンドが主流ということもあり、以下も追加しておこうと思います。

git rebase origin/BranchName

developだとかの最新を取り込みたいときに利用。複数人でブランチ更新していると高頻度でコミット履歴が増えているので、定期的に更新したりしています。mergeでもいいんだろうけど、個人的にはこっちのほうが慣れた+コミット履歴がすっきりして好き

git rebase -i HEAD~5

主にコミット履歴を整理したいとき、「この変更は前のコミットに混ぜ込んだほうが自然だな」というときなどに利用します。

最後の 5 という数字は、現在から何個前のコミットまでを一覧(対象)として遡るかの件数です。git log --oneline を見ながら、整理したいコミットが含まれるように件数を指定します。

履歴の整理では、コミットを1つにまとめる fixup や、メッセージを書き換える reword あたりを主に利用します。


rebase を実行するとコミットID(ハッシュ)が変わってしまいます。そのため、すでにリモートにプッシュ済みの場合は、そのまま push しようとするとエラーになります。
リモートに反映させる際は git push --force-with-lease origin ブランチ名 で安全に強制上書きしてあげる必要があります。

他のメンバーと共有しているブランチでやると大混乱が起きるので、プロジェクトで利用するときは慎重に。(自分が開発している自分専用の feature ブランチとかなら、気にせず使って大丈夫)

たまに使っているコマンド

git checkout [ブランチ名]

git switch でもブランチ切り替えができるため、コマンドを使い始めた当初はよく使っていましたが、最近は出番が減りました。コンフリクト時の解消などで使ったりするようなので、また直面した際に試してみたいと思います。

git init

個人開発などで新規リポジトリを作成する際に使用します。既存のプロジェクトでは新規作成する機会が少ないため、使用頻度は低めです。

git stash

最近教えてもらったコマンドです。作業中の状態を一時的に退避できるため、「ちょっと別のブランチに切り替えて確認したい」というときにとても便利だと感じています!

2026/09/22追記)

時々どころかめちゃくちゃ高頻度で使ってます。ただ、新規追加で追跡できないファイルもあるのでどっちかって言うとgit stash save -u "[コミットメッセージ]"を使ってますが、調べてみたら今saveって非推奨なんですね。

git stash push -u -m "[コミットメッセージ]"が今流だとか…、覚えとこう。

git stash pop

git stash で退避した最新の状態を復元するコマンドです。基本的には git stash とセットで使っています。

2026/09/22追記)

バックアップ取っておきたいクセが出てきたので、最近はgit stash apply "stash@{0}"とかで最新の引っ張ってくるようになってしまいました。

TortoiseGitについて

ここまでコマンド操作について書いてきましたが、「ではTortoiseGitはもう使っていないのか?」というと、実はちょくちょく使っています。

例えば、リポジトリの clone やログの差分比較(diff)、あるいはまだコマンド操作に自信がない複雑な作業をするときなどです。やはり「Gitの操作ミスは怖い」というイメージがあるため、どうしても慎重になってしまいます。

これからも調べながら、少しずつコマンドへ移行していければと思っています。

2026/09/22追記)

この記事書いた1年後からコマンドメインで使うようになって、今はTortoiseGitは全く触っておらず、なんだったらPJ変わってコマンド操作主流になったので、この頃から徐々にコマンドに慣れるようにしておいて良かったなって思ってます。

あとがき

Gitコマンドに関しては、多くの方が分かりやすく解説してくれているため、困ったときに検索するとすぐに解決策が見つかるのがありがたいです。

最近のエディタにはターミナルが標準搭載されていることも多いので、慣れてくるとGUIツールを起動するよりもコマンドで操作した方が時短になると感じています。

最終的には「すべてコマンド操作で完結できる状態」を目指して、これからも慣れていきたいと思います!