我正在尝试创建一个 bash 函数以便能够获得它。
用户通过终端进入 git 项目路径,如下:
/home/daniel/projects/my_super_project
因此用户输入后open
浏览器会在 github.com 中打开如下内容:
http://github.com/bla/my_super_project.git
到目前为止我有这样的代码:
function teste {
if [ -d .git ]; then
remotes=$(git remote -v | awk -F'[email protected]:' '{print $2}' | cut -d" " -f1)
url="https://github.com/"
url="$url$($remotes | cut -d" " -f1)"
# here I'll open the browser
else
# git rev-parse --git-dir 2> /dev/null;
echo "Not a git repo"
fi;
}
我检查是否有.git
文件夹,如果有,我查找远程原点并获取其在 内的值remote_url
。我试图将https://github.com
与连接起来remote_url
,但没有成功,因为终端认为它是一条路径,所以我得到了这个:
bash:bla/my_super_project.git:没有这样的文件或目录
我如何将这两个值连接起来?
答案1
问题解决了:
function opengit {
if [ -d .git ]; then
remotes=$(git remote -v | awk -F'[email protected]:' '{print $2}' | cut -d" " -f1)
if [ -z "$remotes" ];
then
remotes=$(git remote -v | awk -F'https://github.com/' '{print $2}' | cut -d" " -f1)
fi
remote_url=$(echo $remotes | cut -d" " -f1)
url="https://github.com/"
url="${url}${remote_url}"
xdg-open $url
else
echo "Not a git repo"
fi;
}