我使用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 栏中,然后您可以复制它。