创建一个git命令在浏览器中打开存储库



我想创建一个git alias,它将允许我做git visit,并且存储库将在浏览器中打开。

这在Git for Windows与Git Bash中为我工作。在git配置文件中添加以下内容:

[alias]
visit      = "!git remote get-url origin | xargs -r start"
visitfancy = "!f() { REMOTE=${1:-origin}; URL=$(git remote get-url "$REMOTE"); if [[ -n "$URL" ]]; then start "$URL"; fi; }; f"

visit将直接启动origin存在的远程url。

visitfancy将启动您指定的远程名称的远程url,如果没有指定,则默认为origin

当您输入一个命令,如git xyz, git查找一个名为git-xyz的文件,如果找到,它执行它。您可以通过将一个名为git-visit的文件放在PATH的目录中来模拟这种行为,然后git visit将执行它。

文件的内容应该是

xdg-open $(git remote -v | cut -d @ -f 2 | cut -d ' ' -f 1 | head -1 | sed 's/:///' | sed 's/.git$//' | sed s'/^/https:///') >& /dev/null &

(xdg-open可能无法在您的机器上工作)。

注意,为了使文件可执行,必须执行chmod +x git-xyz

如果这个repo有一个GitHub远程,你可以说hub browse(如果你已经安装了hub)。

我使用如下:

[alias]
visit = "!f(){ xdg-open `git config --get remote.origin.url | sed -Ee 's#(git@|git://)#https://#' -e 's@com:@com/@'`| head -n1; }; f"

它适用于SSH和HTTPS克隆库+ GitHub和GitLab

我在osx上的使用:

使用所需的浏览器只需替换Firefox.app如。Safari.app,Brave Browser.app,Google Chrome.app

alias visit='open -a "/Applications/Firefox.app" $(git config --get remote.origin.url)'

在windows上,您可以在repo终端运行以下命令:

start (git config --get remote.origin.url)

有一个小而方便的工具用于此目的。你可以通过npm和其他命令轻松安装它,在浏览器中打开你的repo。

- npm install --global git-open
- git open

在这里您可以找到其他有用命令的文档