🗝️

Gitコマンド入門::statusの緑と赤の文字?!「第五回」

5 min read

Gitコマンド::statusの緑と赤の文字

さあ~ みなさんの理解度は、順調に進みましたか? add, restore, で、Working Tree と、Staging Areaとの間を、commit -m と、restore --staged で、Staging Area と、Git Repogitoryとのファイルの行き来が出来るようになれば、ひとまずOKです!

第四回で、git restore --staged の記載が間違ってました。m(_)m [1]

ちなみに前回の記事は、こちらです!

https://zenn.dev/shiozumi/articles/80b057ce7c77dd

README.md の緑と赤の文字?

今日のお題は、いきなりこちらのメッセージからドン!
get status で、こんな表示が出てきましたよ!(笑)
この状態が何を意味しているか分かりますか?

私も最初の頃、gitの概念がまだイメージできなかった時、緑と赤の表示[2]は、いったいなんじゃ?! もやもやしたものです。(苦笑)

さっそく、翻訳してみましょう!

Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        modified:   README.md

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:   README.md

Google翻訳:
コミットする変更:
(「git restore --staged file ... 」を使用してステージングを解除します)
変更:README.md

コミットのためにステージングされていない変更:
(「git add file ...」を使用して、コミットされる内容を更新します)
(「git restore file ...」を使用して、作業ディレクトリの変更を破棄します)
変更:README.md

一行目は、Staging と、Repository との差分がある!

Repository にある、README.md を、Staging に移動するなら、git restore --staged

二行目は、Working と、Staging との差分がある!

Workingにある、README.md を、Staging に移動するなら、git add
Stagingにある、README.md を、Working に移動するなら、git restore

README.md の内容が3種類ある状態なんですね。Working,Staging,Repositoryのすべてが、異なるファイルの内容を保持している、認識していることなんです。

つまり、こういう状態ですね!

各領域 Git Repository Staging Area Working Tree
ファイル名 README.md README.md README.md
内容 test test add test add (^^)

まずは、みなさんも練習です。このような状態にしてみましょう!

では実際に、最初からやるには、こんな感じですね!

vi README.md
まずは、# test と入力する!
	
[shiozumi@ovs-009 mygit]$ cat README.md
# test
// これで、ファイルの中身を、test に初期設定!

git add README.mdgit commit -m "任意の文字" と入力して!

まずは、README.md がすべて同じになりますね!

各領域 Git Repository Staging Area Working Tree
ファイル名 README.md README.md README.md
内容 test test test

この状態で、git status で確認してみましょう!

[shiozumi@ovs-009 mygit]$ git status
On branch main
Your branch is ahead of 'origin/main' by 3 commits.
  (use "git push" to publish your local commits)
	
nothing to commit, working tree clean

Google翻訳:
ブランチメイン
あなたのブランチは「origin / main」より3コミット進んでいます。
(「git push」を使用してローカルコミットを公開します)

コミットするものは何もない、きれいな作業木

ちなみみ私の環境では、何回かコマンドを入力してしまっているので、自分のメインブランチは、リモートのgithubのリポジトリーより、3コミット進んでいます。[3]

さらに、README.mdを編集!

vi README.md
# test の下に、# add と入力する!
	
[shiozumi@ovs-009 mygit]$ cat README.md
# test
# add

これで、Working だけ、test add になりました!

各領域 Git Repository Staging Area Working Tree
ファイル名 README.md README.md README.md
内容 test test test add

さっそく、git status コマンドを入力してみましょう!

[shiozumi@ovs-009 mygit]$ git status
On branch main
Your branch is ahead of 'origin/main' by 3 commits.
  (use "git push" to publish your local commits)

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:   README.md // 文字は赤

no changes added to commit (use "git add" and/or "git commit -a")

ここでも、例のとおり、メッセージが表示されましたね。Staging と Working で、ファイルの内容が異なるので、git add か、git restore を案内してきました。

それでは早速、git add README.md と入力して、また、git status !

[shiozumi@ovs-009 mygit]$ git status
On branch main
Your branch is ahead of 'origin/main' by 3 commits.
  (use "git push" to publish your local commits)

Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        modified:   README.md // 文字は緑

これで、Staging も、test add になりました!

各領域 Git Repository Staging Area Working Tree
ファイル名 README.md README.md README.md
内容 test test add test add

更にもう一度、README.mdを、再編集!

vi README.md
# test # add の下に、# (^^) と入力する!

[shiozumi@ovs-009 mygit]$ cat README.md
# test
# add
# (^^) // 最後に追加!

この状態で、git status と入力すると!!

[shiozumi@ovs-009 mygit]$ git status
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        modified:   README.md // 緑色の文字

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:   README.md  // 赤色の文字

これで問題の通りの状態になりましたね!!

各領域 Git Repository Staging Area Working Tree
ファイル名 README.md README.md README.md
内容 test test add test add (^^)

さあ~ みなさんは、どうでしょうか?
実際にやってみて貰えれば、かなり理解が深まると思いますよ!
前回今回で使用するコマンドは、たったの5種類!

  • git add README.md
  • git commit -m "任意の文字"
  • git restore README.md
  • git restore --staged README.md
  • git status

これらを使いながら、さらにその都度、git status[4]で確認してみましょう、それで、自分の思い通りの内容が表示されるようになったら、もう、完璧ですよ!(^^)v

今回「第五回」は、ここまで! お疲れ様でした!(笑)

https://zenn.dev/shiozumi/articles/081244e7fb9256
https://twitter.com/esmile2013
脚注
  1. --staged の最後の一文字 d が抜けていて、--stage となっており失礼しました。 ↩︎

  2. 私の環境は、Linuxのコンソールなので、Windowsは色が異なる場合があるかも? ↩︎

  3. ローカルリポジトリ-と、リモートリポジトリ-の差は、また後ほど説明します。 ↩︎

  4. よければ同時に、git status -s も、お試しください! ↩︎

Discussion

ログインするとコメントできます