You can use the following Git commands to find commits where a string was added/modified/deleted. This can be helpful to find commits where a certain method was added, modified, deleted or usages were added/deleted.
1. Find commits where method was mentioned.
Powershell script (for Windows)
# Replace 'YourMethodName' with the string you want to search for $searchString = 'YourMethodName' # Get the list of commits where the string appears in diffs $commits = git log -G $searchString --pretty=format:"%H" # Loop through each commit and show the diff with the specific lines foreach ($commit in $commits) { # Get the commit details (date, author, message) $commitDetails = git show $commit --pretty=format:"Commit: %H`nAuthor: %an`nDate: %ad`nMessage: %s`n" --no-patch # Display the separator header Write-Host "-----" -ForegroundColor Yellow Write-Host # Display the commit details with colors $details = $commitDetails -split "`n" Write-Host $details[0] Write-Host $details[1] Write-Host $details[2] Write-Host $details[3] Write-Host # Get the diff for the commit $diff = git show $commit --pretty="" --no-prefix # Split the diff into lines $diffLines = $diff -split "`n" # Initialize variables $currentFile = "" $relevantLines = @{} # Process each line in the diff foreach ($line in $diffLines) { if ($line -match '^diff --git a\/(.+?) b\/\1$') { # Extract the filename from the diff line $currentFile = $matches[1] } elseif ($line -match "(\+|\-).*${searchString}") { # Add the line to the relevant lines for the current file if (-not $relevantLines.ContainsKey($currentFile)) { $relevantLines[$currentFile] = @() } $relevantLines[$currentFile] += $line } } # Display the relevant lines grouped by filename foreach ($file in $relevantLines.Keys) { Write-Host "File: $file" -ForegroundColor Yellow foreach ($line in $relevantLines[$file]) { if ($line -match '^\+.*') { Write-Host $line -ForegroundColor Green } elseif ($line -match '^\-.*') { Write-Host $line -ForegroundColor Red } else { Write-Host $line } } Write-Host } }