我有一個可執行文件在git倉庫中。哪個提交可執行文件
如何找出哪個提交使該文件成爲可執行文件?
我試過git log file.txt
但這並沒有顯示文件模式和搜索手冊頁的變化,谷歌沒有結果。使用Git
我有一個可執行文件在git倉庫中。哪個提交可執行文件
如何找出哪個提交使該文件成爲可執行文件?
我試過git log file.txt
但這並沒有顯示文件模式和搜索手冊頁的變化,谷歌沒有結果。使用Git
用途:
git log -p file.txt | grep --before-context 7 "old mode"
(如果你提交的文本是多線長,增加了前上下文行選項,它包括提交ID)
文件模式改變包括「舊模式」和日誌中的「新模式」,這是如何工作的。
它可以幫助你通過最優化的方式採摘提交搜索。你將從選擇兩個提交開始,一個提交不起作用,另一個提交。之後,git會給你一個提交,你測試它是否工作並做出相應的響應。幾次嘗試後,您會發現正確的提交。
git log --raw
(或git whatchanged
,其跳過合併爲好)中提取的模式:
:100644 100644 bcd1234...... M file0
第一八進制數是老模式,第二個是新的。如果文件變得可執行,則舊模式將以644
結束,新模式將以755
結束。在644
或755
之前,常規文件的模式爲100
。所以這會很快找到它:
git log --raw -- path/to/file | grep -B 1 '^:100644 100755 '
如果有多個從非可執行文件到可執行文件的轉換,將會找到所有這些文件。
謝謝!這正是我一直在尋找的。當有人不小心做出可執行的東西時,這是我的個人寵物。 – donatJ