我在GitHub上拖了一個有幾個福克的項目,但忘記了它是哪個福克。
当前回答
#!/bin/bash
git-remote-url() {
local rmt=$1; shift || { printf "Usage: git-remote-url [REMOTE]\n" >&2; return 1; }
local url
if ! git config --get remote.${rmt}.url &>/dev/null; then
printf "%s\n" "Error: not a valid remote name" && return 1
# Verify remote using 'git remote -v' command
fi
url=`git config --get remote.${rmt}.url`
# Parse remote if local clone used SSH checkout
[[ "$url" == git@* ]] \
&& { url="https://github.com/${url##*:}" >&2; }; \
{ url="${url%%.git}" >&2; };
printf "%s\n" "$url"
}
使用:
# Either launch a new terminal and copy `git-remote-url` into the current shell process,
# or create a shell script and add it to the PATH to enable command invocation with bash.
# Create a local clone of your repo with SSH, or HTTPS
git clone git@github.com:your-username/your-repository.git
cd your-repository
git-remote-url origin
出口:
https://github.com/your-username/your-repository
其他回答
我基本上使用:
git remote get-url origin
在 Windows 中,它适用于 Git Bash 命令控制台或 CMD 命令控制台。
alias git-repo="git config --get remote.origin.url | sed -e 's/:/\//g'| sed -e 's/ssh\/\/\///g'| sed -e 's/git@/https:\/\//g'"
alias git-pr="git config --get remote.origin.url | sed -e 's/:/\//g'| sed -e 's/ssh\/\/\///g'| sed -e 's/git@/https:\/\//g' | sed 's/....$//' | sed -ne 's/$/\/pulls &/p'"
在主目录中将此表达式添加到.zshrc 或.bashrc 文件中。
在此之后,您可以使用如
git-repo
git-pr
上流的远程可能不会被称为“起源”,所以这里有一个变量:
remote=$(git config --get branch.master.remote)
url=$(git config --get remote.$remote.url)
basename=$(basename "$url" .git)
echo $basename
或:
basename $(git config --get remote.$(git config --get branch.master.remote).url) .git
对于更有用的变量,有:
$ git config -l
如果你不知道一个分支的上流远程的名称,你可以首先通过检查当前分支的上流分支名称来查看它。
git rev-parse --symbolic-full-name --abbrev-ref @{upstream}
这表明,上流的分支是当前分支的来源,这可以被分配,以获得远程名称如下:
git rev-parse --symbolic-full-name --abbrev-ref @{upstream} | cut -d / -f 1
现在拿到它,并将其粘贴到 git ls-remote,你会得到上流的远程的URL,这是当前分支的来源:
git ls-remote --get-url \
$(git rev-parse --symbolic-full-name --abbrev-ref @{upstream} | cut -d / -f 1)
现在应该注意到,这并不一定与源的远程存储库相同,但在许多情况下,这将是足够的。
Git URL 将位于 Git 配置文件中,值相当于关键 URL。
对于 Mac 和 Linux,请使用下面的命令:
cd project_dir
cat .git/config | grep url | awk '{print $3}'
在 Windows 中,在任何文本编辑器中打开下面的文件,并找到关键URL的值。
project_dir/.git/config
注意: 即使您离线或远程 Git 服务器已被删除,这也将工作。
推荐文章
- 如何从远程Git存储库中提取并覆盖本地存储库中的更改?
- Github:导入上游分支到fork
- Git单次修订的日志
- Git在不改变提交时间戳的情况下进行改基
- VS 2017 Git本地提交数据库。每次提交时锁定错误
- 如何在过去的一些任意提交之间注入一个提交?
- 从GitHub克隆项目后拉git子模块
- GitHub上的分叉和克隆有什么区别?
- 递归地按模式添加文件
- 我如何使用notepad++(或其他)与msysgit?
- 如何将现有的解决方案从Visual Studio 2013添加到GitHub
- 是否可以在GitHub上搜索特定的文件名?
- Git存储库中的悬垂提交和blob是什么?它们来自哪里?
- 我如何简单地从我最新的git提交创建一个补丁?
- Git显示“警告:永久添加到已知主机列表”