Combining Code Context and Fine-grained Code Difference for Commit Message Generation | AMiner