[英]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 commit
上git commit
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.