Answers:
在存储库根目录中,该.git/config
文件包含有关远程存储库和分支的所有信息。在您的示例中,您应该寻找类似的内容:
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = server:gitRepo.git
另外,Git命令git remote -v
显示远程存储库名称和URL。“原始”远程存储库通常对应于原始存储库,从该原始存储库克隆了本地副本。
git remote show origin
用来查看有关该遥控器的更多信息。
git remote -v
只是读写.git/config
。
git config --get remote.origin.url
git remote show origin
调出了网络。
我偶然发现了这个问题,试图organization/repo
从github或gitlab之类的git主机获取字符串。
这为我工作:
git config --get remote.origin.url | sed -e 's/^git@.*:\([[:graph:]]*\).git/\1/'
它用于仅使用组织和存储库名称sed
替换git config
命令的输出。
喜欢的东西github/scientist
会被字符类匹配[[:graph:]]
的正则表达式。
该\1
告诉sed只用匹配的字符来代替一切。
git config --get remote.origin.url | sed -e 's/^git@.*:\([[:graph:]]*\).git/\1/'
git remote show origin -n | ruby -ne 'puts /^\s*Fetch.*(:|\/){1}([^\/]+\/[^\/]+).git/.match($_)[2] rescue nil'
已使用三种不同的URL样式进行了测试:
echo "Fetch URL: http://user@pass:gitservice.org:20080/owner/repo.git" | ruby -ne 'puts /^\s*Fetch.*(:|\/){1}([^\/]+\/[^\/]+).git/.match($_)[2] rescue nil'
echo "Fetch URL: Fetch URL: git@github.com:home1-oss/oss-build.git" | ruby -ne 'puts /^\s*Fetch.*(:|\/){1}([^\/]+\/[^\/]+).git/.match($_)[2] rescue nil'
echo "Fetch URL: https://github.com/owner/repo.git" | ruby -ne 'puts /^\s*Fetch.*(:|\/){1}([^\/]+\/[^\/]+).git/.match($_)[2] rescue nil'