
我想找到上次在目前分支(主分支)的原始程式碼中刪除特定 css 屬性的時間。我寫:
git log -Smystring --source
它給了我一個哈希值。我啟動了 gitk 並貼上了哈希值,它給了我一個巨大的文件列表,所以我懷疑這只是行結尾。但是我在 gitk 中搜尋了該字串,但找不到該字串。也許這意味著它已被刪除,但 gitk 不應該顯示- ...mystring...
嗎?
如何找到我的字串所在的行/文件?我使用上面的命令看到了最後幾個哈希值,但我不知道如何找出它。
答案1
就像是
git bisect start
git bisect bad AFTER
git bisect good BEFORE
git bisect run grep -v LINE FILE
其中 BEFORE 和 AFTER 是(分別)包含和不包含相關行的提交。這應該會找到 BEFORE 和 AFTER 之間的最後一次提交,其中 FILE 包含 LINE。
一旦您知道要查看哪個提交,您就可以使用
git grep -n LINE COMMIT:FILE
在適當版本的 FILE 中找到 LINE 及其行號。