找出您在Git中克隆的原始存储库的名称


Answers:


91

在存储库根目录中,该.git/config文件包含有关远程存储库和分支的所有信息。在您的示例中,您应该寻找类似的内容:

[remote "origin"]
    fetch = +refs/heads/*:refs/remotes/origin/*
    url = server:gitRepo.git

另外,Git命令git remote -v显示远程存储库名称和URL。“原始”远程存储库通常对应于原始存储库,从该原始存储库克隆了本地副本。


16
您还可以git remote show origin用来查看有关该遥控器的更多信息。
卡斯卡贝尔

1
看来Answer中的这两种方法是等效的-似乎git remote -v只是读写.git/config
flow2k


29

您可能正在搜索的这是快速的Bash命令,将仅打印远程存储库的基本名称:

哪里获取:

basename $(git remote show -n origin | grep Fetch | cut -d: -f2-)

或者,您在哪里推送至

basename $(git remote show -n origin | grep Push | cut -d: -f2-)

特别是该-n选项使命令更快。


11

我用这个:

basename $(git remote get-url origin) .git

返回类似的东西gitRepo。(删除.git命令末尾的,以返回类似的内容gitRepo.git。)

(注意:它需要Git 2.7.0或更高版本)


2

我偶然发现了这个问题,试图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只用匹配的字符来代替一切。


拼写错误的结尾是说.get而不是.git ---- git config --get remote.origin.url | sed -e 's/^git@.*:\([[:graph:]]*\).git/\1/'
MSillence

感谢@MSillence,已修复。
jhnstn

0
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'

1
解释您做
Maher

也许添加更多信息,例如有关Ruby依赖关系以及在哪个平台上对其进行测试(包括版本信息)。
彼得·莫滕森

0

这将获得价值。

#!/usr/bin/env bash
repoSlug="$(git config --get remote.origin.url | cut -d/ -f5 | cut -d. -f1)"
echo ${repoSlug}
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.