我使用nulltoken的答案组合了一个简单的便捷脚本,用于从命令行提取GitHub上两次提交之间的差异。
您可以在gist上找到完整的脚本,但是这里有一些好处:
# Parse the following patterns for repo urls to get the github repo url
# https://github.com/owner/repo-name.git
# git@github.com:owner/repo-name.git
BASE_URL="https://github.com/""$(git config --get remote.origin.url | sed 's/.*github\.com[/:]\(.*\).git/\1/')""/compare"
if [[ "$#" -eq 1 ]]; then
if [[ "$1" =~ .*\.\..* ]]; then
# Handle "git hubdiff fromcommit..tocommit"
open "${BASE_URL}/$(git rev-parse "${1/\.\.*/}")...$(git rev-parse ${1/*\.\./})"
else
# Handle "git hubdiff fromcommit"
open "${BASE_URL}/$(git rev-parse "$1")...$(git rev-parse HEAD)"
fi
elif [[ "$#" -eq 2 ]]; then
# Handle "git hubdiff fromcommit tocommit"
open "${BASE_URL}/$(git rev-parse "$1")...$(git rev-parse "$2")"
fi
它接受分支,提交和可以解决的其他任何参数作为参数git rev-parse
。我使用open
,该功能仅在macOS上才能打开网页,因此,如果您使用的是其他环境,则需要对其进行调整。
与nulltoken的答案一样,为了指向diff中的单个文件,您必须单击文件的标题以使锚字符串出现在url栏中,然后可以进行复制。