一度ステージした後別の内容に修正してステージしてコミットしたくなった時は
git add
でもう一度ステージし直す。
**********@mbp training % git status
On branch master
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: .idea/workspace.xml
modified: hello.txt
Untracked files:
(use "git add <file>..." to include in what will be committed)
.gitignore
no changes added to commit (use "git add" and/or "git commit -a")
ファイルが変更(HEADとステージの差)、変更がステージされていない(ステージと作業ツリーの差)
Changes not staged for commit:
「ファイルが変更されている」かつ「変更がステージされていない」ファイルがある場合に表示されます。
出典 https://atmarkit.itmedia.co.jp/ait/articles/1604/26/news019_3.html
Untracked files:
- ステージングしていないファイルがあることを意味する。
- 「未追跡のファイル」という意味
出典 https://akizora.tech/git-untracked-file-3120
気づき
gitとはステージされることで追跡されるんだな。(今更)
演習
hello.txtについて、HEADとステージ、そしてステージと作業ツリーの内容が違う状態を作り、git status
の出力を見てみよう。
HEADとステージの内容の違い
***********@mbp training % git status
On branch master
c
(use "git restore --staged <file>..." to unstage)
modified: hello.txt
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: .idea/workspace.xml
Untracked files:
(use "git add <file>..." to include in what will be committed)
.gitignore
これでHEADとステージの違いを作ったと思っている。
Changes not staged for commit:
既にGitが変更を追跡しているファイルに対する変更をステージングエリアに追加しました。
新しいファイルの追跡
新しいファイルの追跡を開始するには git add コマンドを使用します。
出典 https://git-scm.com/book/ja/v2/Git-%E3%81%AE%E5%9F%BA%E6%9C%AC-%E5%A4%89%E6%9B%B4%E5%86%85%E5%AE%B9%E3%81%AE%E3%83%AA%E3%83%9D%E3%82%B8%E3%83%88%E3%83%AA%E3%81%B8%E3%81%AE%E8%A8%98%E9%8C%B2#:~:text=%E3%81%AB%E3%81%97%E3%81%BE%E3%81%97%E3%82%87%E3%81%86%E3%80%82-,%E6%96%B0%E3%81%97%E3%81%84,-%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AE%E8%BF%BD%E8%B7%A1
ステージと作業ツリーの内容の違い
***********@mbp training % git status
On branch master
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
modified: hello.txt
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: .idea/workspace.xml
modified: hello.txt
Untracked files:
(use "git add <file>..." to include in what will be committed)
.gitignore
modified: hello.txt
でステージとの違いを出したと思う。
その状態で、git diff
、git diff ---sataged
、git diff HEAD
の出力を比べてみよう。
git diff
.
.
.
diff --git a/hello.txt b/hello.txt
index ******************:
--- a/hello.txt
+++ b/hello.txt
@@ -1,4 +1,4 @@
Hello!
I am a student.
-hogehoge!!
+hogehogehogehoge!!
git diff ---sataged
************:@mbp training % git diff --staged
diff --git a/hello.txt b/hello.txt
index *********************
--- a/hello.txt
+++ b/hello.txt
@@ -1,3 +1,4 @@
Hello!
I am a student.
+hogehoge!!
まだコミットしていない状態
git diff HEAD
.
.
.
diff --git a/hello.txt b/hello.txt
index ****************
--- a/hello.txt
+++ b/hello.txt
@@ -1,3 +1,4 @@
Hello!
I am a student.
+hogehogehogehoge!!
作業ツリーとHEADの間ではhello.txtがhogehogehogehoge!!と変更している。
ことがわかる。
まだコミットされていない。
Comments
Let's comment your feelings that are more than good