0
1

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の作業エリア・ステージング・コミットでの動きはこれだけ覚えておけばいい

Last updated at Posted at 2025-05-18

はじめに

gitでファイルを作業エリア(Work)からステージングエリア(Staging)に追加し、コミット(Commit)するだけならgit addgit commitだけで事足りるのですが、ステージングエリアからファイルを戻したり削除したりすると、作業エリアとステージングエリアでファイルがどういう状態になっているか混乱したため整理。

gitの基本コマンド

作業エリア、ステージングエリア、コミット履歴を行き来する際の基本的なコマンドのまとめになります。

まずはaddとcommit

緑枠がgitコマンド。gitやオプションは省略しているので適宜読み替えること。

image.png

diffで隣同士を比較

git diffは作業エリアとステージングエリア、もしくはステージングエリアとコミット履歴の比較を実施する。
--stagedオプションの有無でお隣さんの位置が変わるが隣同士のdiffをとるのは一緒。
image.png

resetでaddをなかったことに

resetコマンドはaddでステージングエリアに登録した情報を削除する。
削除されるのはステージングエリアの変更だけで、作業エリアのファイルには影響ない。
うぁーこんなところでgit addなんかするんじゃなかった・・・とaddしたことを反省する際に利用するコマンド。

image.png

restoreはやらかした過ちを消し去りたいとき

restoreは自分がやった変更や修正を無かったことにしたい時、隣にある情報から引き戻す。
人に見せたくない恥ずかしい修正をやらかしてしまい、なかったことにしたい場合に利用する。コミット前なら他の人に見られることはない。
git checkout -- Aでもgit restore Aと同じことができるけど、無理に色々覚える必要ない。
image.png

rmはコミットまでやってしまった恥ずかしい情報を消したいとき

ログには残るがコミットした情報を消したい時に利用。
-f--cachedオプションつけると、作業エリアやステージングエリアで削除しないようにできるが、コミットしたファイルを消すのがメインなので省略。
git rmで注意するのは、消したいファイルをないものとしてコミットするということ。
下記の例では、git rm Aで作業エリアとステージングエリアの両方からAファイルが消える。しかしコミット履歴にはAの情報が残っている。ここでコミットすると、ステージングエリアにAファイルが存在しないのでコミット履歴から消える。
やっぱ消すのやーめた、と気が変わった場合はrestoreで戻せる。

image.png

さいごに

リモートとPush/Pullしたり、ブランチ切り替えの内容は含んでいませんが、git使う際の基本の動きの整理ということで。

0
1
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
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?