我已啓用$Id:$
通過ident
在.gitattributes
文件擴展。這使我可以在別人檢出我的存儲庫並從那裏安裝它時快速識別文件是否過期。更新登錄後的ident字符串
現在,我還將我自己的Git存儲庫的內容同步到其他(非開發,即無Git)系統。問題在於關鍵字擴展只發生在結帳,但我的工作流程是commit - > push - > sync,所以同步副本包含過時的ID。
如何在本地提交後輕鬆強制更新Ids? (積分爲之後的任何承諾自動做這個!)
簡單git checkout
不工作(也不能與--force
),可能是因爲該文件的內容並沒有改變。 git checkout-index --force
也沒有。我只設法通過無論是本地的修改來完成這個(繁瑣,需要知道修改後的文件):
$ echo "modified" >> file
$ git checkout file
或臨時檢查出以前的承諾:
$ git checkout HEAD^
$ git checkout [email protected]{1}
你申請什麼filepattern此的ident屬性?以及包含多少個文件? –
另外,一個提示(雖然這不能回答你的問題):你可以做'git checkout HEAD @ {1}',它會檢出HEAD的前一個值(http://git-scm.com/book/ EN /針對Git工具版本選擇#引用日誌 - 簡短名字)。它跟蹤分支值在.git/logs –
我會建議在檢出文件時不要使用idents。它幾乎從來都不是正確的解決方案,並導致比解決問題更多的問題;相反,如果您需要跟蹤哪個修訂版與結帳相對應,那麼我會使用一個單獨的文件來跟蹤該文件,並且不會將其提交給git。例如,如果你有一個'sync'腳本,讓它將當前的commit-id寫入一個文件,然後在需要顯示的地方讀取該文件。 –