2012-05-21 31 views
3

是否有一個--staged(aka --cached)選項用於比較git存儲中的文件?比較暫存文件與一個存儲

在這裏,我比較最近提交反對上演文件(我使用的是明確的@ {}語法,但我知道,@ {0}可以推斷):

git diff [email protected]{0}:spec/blueprints.rb HEAD:spec/blueprints.rb 

而且我在這裏比較什麼是磁盤上的文件藏起來:

git diff [email protected]{0}:spec/blueprints.rb spec/blueprints.rb 

我如何比較哪當前與什麼在藏匿上演?這不起作用:

git diff --staged [email protected]{0}:spec/blueprints.rb spec/blueprints.rb 

回答

3

git diff --cached '[email protected]{0}' -- spec/blueprints.rb

...這可能是不需要的報價,但你永遠不知道你的shell如何會讓你大吃一驚。

0

:<n>:<path>, e.g. :0:README, :README

冒號,任選接着進行一個階段數(0到3)和一個冒號,然後是路徑,名稱一個blob對象索引中的在給定的路徑。缺少的階段編號(以及後面的冒號)命名爲0階段編號。在合併期間,階段1是共同的祖先,階段2是目標分支的版本(通常是當前分支),階段3是來自正在合併的分支的版本。

git help rev-parse