Git-如何将当前分支名称和最后一个推送到控制台的远程URL记录到日志中

Git-如何将当前分支名称和最后一个推送到控制台的远程URL记录到日志中,git,alias,Git,Alias,我想创建一个git别名(或bash别名),它将打印(到控制台中)当前签出的分支&以及它被推送到的最后一个远程(url不是名称) 理想情况下,我希望它能像这样工作: > git log-branch-fork Branch Name: features/current_feature_name Form URL: git@github.io:UserName/ForkUrl.git 或者,我可以传入一个参数,该参数包含遥控器的名称: > git log-branch-fork my-

我想创建一个git别名(或bash别名),它将打印(到控制台中)当前签出的分支&以及它被推送到的最后一个远程(url不是名称)

理想情况下,我希望它能像这样工作:

> git log-branch-fork
Branch Name: features/current_feature_name
Form URL: git@github.io:UserName/ForkUrl.git
或者,我可以传入一个参数,该参数包含遥控器的
名称

> git log-branch-fork my-fork
Branch Name: features/current_feature_name
Form URL: git@github.io:UserName/my-fork.git
推送到的最后一个远程(url不是名称)

这不能完全可靠地确定,因为Git不存储有关何时发生推送的信息

但是,通过查看当前分支的跟踪分支,我们至少可以看到当调用
Git push
而不显式使用
remote
参数时Git使用的
remote

下面是一个shell脚本,它使用跟踪分支来确定相关的
remote
分支。您还可以选择传入一个
遥控器

#!/bin/sh

# get full tracking branch name
# (e.g origin/master)
BR=`git rev-parse --abbrev-ref --symbolic-full-name @{u}`

# either get remote from user
# or from parsing the tracking branch's name
if [ $# -eq 1 ]
  then
    REMOTE=$1
else
  REMOTE=`echo $BR | cut -d/ -f 1`
fi

# get url associated with remote
URL=`git config --get remote.$REMOTE.url`

# print out results
echo "Branch Name: $BR"
echo "From URL: $URL"

我建议将此脚本放在您的
路径上,然后当您当前的工作目录位于Git repo中时,只需指定它的名称(并可以选择传入
远程
)即可调用它。

IIRC,Git也不会跟踪上次推送分支的位置。如果您已经配置了跟踪遥控器,它就知道跟踪遥控器,但是您必须自己跟踪和存储推送到遥控器。是的,我也这么想,所以我想我可以使用一个包含遥控器名称的参数