2015-05-04 71 views
5

假設我有一個名爲LICENSE.txt的存儲庫中的文件。內容如下所示:如何使用git比較工作副本,臨時副本和已提交副本的文件

Copyright 2014 MyCompany. All Rights Reserved. 

自2015年我改變了一年那麼其2015年:

Copyright 2015 MyCompany. All Rights Reserved. 

然後上演文件

git add LICENSE.txt 

正在一點點分心,我做了對LICENSE.txt進行的另一個更改反映出另一個組織擁有版權。

Copyright 2015 MyCompany and Affiliates. All Rights Reserved. 
Copyright 2015 Other Company. All Rights Reserved. 

我能看到我的工作副本之間的差異,並通過運行

git diff 

上演副本,我可以通過運行

看到上演副本,並承諾複製的區別
git diff --cached 

如何將承諾副本(沒有年份變更的副本)與工作副本(具有附加版權的副本)進行比較?

這完全是一個例子。有些情況要複雜得多,因爲我需要將我已經上演的內容與隨後對文件所做的更改進行比較。比較工作副本和演出副本的內容將決定我是否應該更換演出副本。

我在Windows Server 2012 R2上運行git 1.9.5。

+0

'git diff'不會做你所說的,看到接受的答案。你可以編輯你的文章,以便將來的讀者不誤導? –

+0

我做了改變。造成這種困惑的原因是,如果您沒有更改任何更改,而是更改了工作副本,'git diff'將顯示工作副本和提交副本之間的差異。 – bloudraak

+0

如果您還沒有進行任何更改,'git diff'的行爲與分階段進行更改時相同。但是這兩種差異是相等的。 –

回答

14

如何將工作副本的演出副本(具有年份變更的副本)進行比較。
[...]我有需要比較什麼,我有我隨後向文件

這仍git diff所做的更改上演。

(由OP編輯:我怎樣在工作副本

然後比較致力於副本(一個與去年變化),這將是git diff HEAD

http://images.abizern.org.s3.amazonaws.com/365git/Feb11/Git%20Diff%202.png

365git: Getting a diff between the working tree and other commits

如果您正在尋找與不同的東西10 diff --cached,留下您:

git diff HEAD 

即:版本已經提交和工作樹之間的差異。

+0

你用非常清晰的插圖覆蓋了我正在尋找的所有場景。感謝您抽出寶貴的時間。 – bloudraak

+0

需要注意的是,如果您還沒有進行任何更改,'git diff'將顯示提交副本和工作副本之間的差異。 – bloudraak

+0

@bloudraak true:HEAD和索引在第一個'git add'之前是相同的。 – VonC