2014-02-25 60 views
2

假設我做了以下內容:手動重新添加文件還是使用git還原有區別嗎?

git rm file.ext 
git commit 

我不知道是否有混帳內部

之間
git revert HEAD 

git checkout HEAD file.ext 
git commit 

大概混帳實現目標文件的差異。 ext並沒有改變它的散列,也沒有以任何方式將它添加爲新對象,對吧?

+0

Git非常聰明,如果它具有相同的名稱,它甚至可能認識到重新添加實際上是同一個對象。不過,我不知道這一點。 – patrickvacek

+2

@patrickvacek:Git不僅非常聰明,而且非常聰明。如果文件具有相同的內容,即使使用不同的文件名,它也會被識別爲相同。如果文件名不同,但內容足夠相似,則會將它們顯示爲文件移動或複製。 – knittl

+0

@ knittl謝謝!實際上我發現你的評論比你的回答更好(; – Andy

回答

2

如果您沒有更改提交中的其他任何內容,則結果提交將基本相同。 git revert將自動生成一個引用您的舊提交的正確提交消息(以便您以後知道哪個提交已恢復)。