2017-02-10 50 views
0

我想寫一個腳本來備份一些文件每週與git的基礎上。
我的劇本的結構如下:Git /存儲治療不改變文件作爲全新的

  1. 光盤插入其中的變化將要做出
  2. 結賬分支
  3. 運行一個腳本來與當前文件覆蓋了整個文件夾的本地目錄
  4. git add --all
  5. git push

這是問題:當我進行覆蓋時,大部分文件應該是相同的。因此,在我將它們推到遙控器後,它們不應該被標記爲以任何方式改變。

但是,當我推動時,所有沒有改變的文件(因此被相同的副本覆蓋)被視爲完全新的,當我查看他們存儲。

有沒有人遇到過這樣的問題/知道是什麼原因造成的?

+0

所有你需要做的就是區分這些文件以瞭解發生了什麼。 – jbu

回答

0

的兩個可能的原因是:

  • 不同的權限(644或755)
  • 不同EOL(線結束):檢查DIFF上的一個改變的文件用:

    git -c color.diff.whitespace="red reverse" diff -R -- afile 
    

Check also任何text=auto指令.gitattributes文件

確保git config --global core.autocrlf設置爲false(並且您的回購沒有任何本地git config autoocrlf)。
對於文件許可,git config --global core.filemode false可以提供幫助。

然後再次嘗試checkout/override/add/commit和push序列。