为什么终端消息显示 "nothing to commit" 而上面的消息显示 "Your branch is ahead of 'origin/main' by 1 commit."?

Why the terminal message shows, "nothing to commit" when the message above reads, "Your branch is ahead of 'origin/main' by 1 commit."?

为什么当上面的消息显示为“您的分支比 'origin/main' 领先 1 次提交”时,终端消息显示“没有要提交的内容”?

您已经提交了更改,因为您领先 1 次提交。 我建议执行 git status 以查看您有哪些未提交的更改。 您正在寻找的是 git push.

这两条消息在谈论两件不同的事情。第一个 (Your branch is ahead of 'origin/main' by 1 commit.) 告诉你你已经向本地存储库提交了 1 次,但你还没有将它 (get push) 推送到远程存储库。

第二条消息 (nothing to commit...) 指的是您的本地目录。你没有对那里没有提交的文件进行任何修改、添加或删除。所以,没有什么可提交的。

一旦您确实进行了一些更改并在本地提交它们,您将收到有关当前分支再次在远程分支之前提交一定数量的消息。

Git的世界是这样的:

 your working tree (the files you see)
         |
         | nothing to commit to...
         V
    the index (where you git add to form a commit)
         |
         V
   actual commits (your local branch where commits go when you form them)
         |
         | you are one ahead of...
         V
   the remote repository (GitHub or whatever, an online copy of your repo)

git status 描述了两组关系:工作树与索引,以及您最近在本地提交与在 GitHub 或任何地方提交的最近提交远程群岛这些并不相互矛盾;其实他们之间并没有什么关系。

  • Nothing to commit 表示您的工作树与索引匹配。您无法进行新的提交,因为您没有更改任何内容。

  • 你的分支在前面意味着你已经在本地做了一些提交(在这种情况下是一个),如果你想要 GitHub或者遥控器要知道的任何地方,您都需要按下。

这两条消息实际上都没有要求执行任何操作。喜欢就继续工作吧。