簡體   English   中英

Git狀態有點令人困惑

[英]Git status a bit confusing

Git在我的一個分支機構上報告以下狀態:

# On branch awesome
# Changes to be committed:
#   (use "git reset HEAD ..." to unstage)
#
#       new file:   NEW.txt
#
# Changed but not updated:
#   (use "git add ..." to update what will be committed)
#
#       modified:   NEW.txt
#

這是因為我創建了NEW.txt然后命令:

git add NEW.txt

然后編輯了該文件。 這是否意味着執行git commit會提交我對文件所做的最新更改,還是應該格外小心?

Git具有工作目錄暫存區域(索引)的概念。 如果添加新文件,則會將其添加到索引中。 如果您以后編輯該文件,則只會在您的工作副本中進行更改。 您需要以與已存在的文件相同的方式將其添加到索引中。

因此,簡而言之,只有索引中的內容才會被提交。 commit -a可以在這里工作,或者只是像往常一樣編輯它時再次添加文件。

Git版本內容而不是文件。 因此, git add時的內容將在下次提交時提交。

在您描述的情況下,如果您執行git commit您將提交在執行git add之前所做的更改(可能只創建一個空文件),而不是之后的更改。 您可以使用git diff來查看差異:

git diff

顯示工作副本索引之間的差異

git diff --cached

顯示索引和HEAD之間的差異。 git diff --cached顯示的git diff --cached將在git commitgit commit

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM