2013-02-26 114 views
4

在我的PC上克隆一個github倉庫後,文件顯示爲一個修改後的文件。但是這個文件的最後修改是在8個月前完成的。怎麼可能? 我試過執行「git checkout - 」。但該文件像修改後的文件一樣繼續。git克隆後修改的文件

的.gitattribute文件:
*的.java文本
* .scala文本
* .XML文本
的* .properties文本
* .properties.default文本
* .SH文本
* .pig文本
*的.py文本
* .MD文本

有問題的文件是Java如此urce。我正在使用Ubuntu 12.10

任何人有問題的提示/解決方案?

+0

我見過類似的東西和我最好的猜測是有一定的掛鉤修改在克隆文件。 – Michael 2013-02-26 21:58:02

+1

你可以做'git diff'並查看是否有任何有意義的改變? – Bhaskar 2013-02-26 22:42:20

+0

當我執行「git diff」就像文件的所有行都被刪除並再次包含 – vanz 2013-02-26 23:29:31

回答

0

只是設置一個git core.filemode false會解決你的問題。

BR, 添

+0

即使設置了'core.filemode false'和'core.autocrlf false',我仍然遇到同樣的問題。有小費嗎? – wviana 2015-09-30 15:03:04

-1

每當git檢出某個文件(如在clone之後),它將修改時間設置爲當前時間。

請考慮以下情形:您有分支,創造性地稱爲One和Two。您簽出一個,然後運行make。然後您退房兩次,然後再次運行make。有一個特定的文件,就是這個文件,它是在1到2個月前在各個分支上次修改的。如果git檢出file與它的原始修改時間,每次您切換分支file將已被修改一個時間前至多make看到。不是好事(TM)。

+0

只有在文件發生變化的情況下才這樣。如果我要切換分支,並且兩個分支中的項目具有相同的內容(例如,如果目標樹項目與我當前的索引項匹配),則「mtime」不會更新。否則,當我切換分支時,所有的文件都會更新它們的'mtime','make'會重建所有東西。而且,這也不會是一件「好事」。 – 2013-02-27 02:16:23

+1

無論如何,這並沒有回答爲什麼'git'會在文件檢出後看到文件被修改。 – 2013-02-27 02:21:31

+0

@EdwardThomson,我明確地給出了兩個不同版本的例子。在克隆之後,這些文件將首次被檢出(沒有「來自另一個分支的未更改的版本」)。 'git'很聰明,但它無法讀懂頭腦以找出「正確」的時間,只需要最安全的選擇。 – vonbrand 2013-02-27 02:27:02