Git 尋找更改的行號

Git 尋找更改的行號

我想找到上次在目前分支(主分支)的原始程式碼中刪除特定 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 及其行號。

相關內容