2011-01-27 110 views
28

「更改但未更新的意思」是什麼?這些文件在git中,它們已被修改,但是當我運行「git status」時,這些更改顯示在「已更改但未更新」下,而不是「要提交的更改」。Git:文件「已更改但未更新」

# On branch master 
# Changes to be committed: 
# (use "git reset HEAD <file>..." to unstage) 
# 
# modified: breakouts/views.py 
# 
# Changed but not updated: 
# (use "git add <file>..." to update what will be committed) 
# (use "git checkout -- <file>..." to discard changes in working directory) 
# 
# modified: templates/registration/login.html 
# modified: templates/registration/registration.html 

# Untracked files: 
# (use "git add <file>..." to include in what will be committed) 
# 
# context_processors.py 
# static/#css.css# 

既然他們已經被添加了,爲什麼他們不是「承諾的變化」?

+1

`git add`的關鍵思想是你準備一個提交,是你將修改放入臨時區域(索引),然後一旦你完成了你想提交的內容,就提交它。這可以讓你非常小心任何給定提交的內容。 – Cascabel 2011-01-27 06:24:27

回答

5

每次修改文件時,都必須使用git add添加它才能提交它,即使您在開始時添加了它也是如此。

3

git add <file>將「更改」添加到您的本地提交時間表,如果未添加這些更改,則不會提交。

爲什麼?這就是git的工作流程,就像任何可以解釋的術語一樣,也許你已經習慣了SVN的想法add,試着放棄你的想法並學習git如何做。

23

你必須每次都使用OR使用git commit -agit commit --all而不是純git commitgit add

Git docs

 
-a 
--all 
    Tell the command to automatically stage files that have been modified 
    and deleted, but new files you have not told git about are not affected. 

add基本上是 「借這個文件/目錄的通知」 命令。不是CVS或Subversion的曲目改變到這個文件。

+2

請注意,在較新的git版本(> 1.8)中,評論「已更改但未更新」被改爲「未進行提交的更改」 – 2015-05-13 12:00:43

相關問題