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

当你使用语法来做你的第一个克隆

git clone username@server:gitRepo.git 

是否有可能使用您的本地存储库来查找该初始克隆的名称? (所以在上面的例子中findgitRepo.git)

在存储库根目录中,.git / config文件包含有关远程存储库和分支的所有信息。 在你的例子中,你应该找像这样的东西:

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

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

 git config --get remote.origin.url 

这是您可能search的快速bash命令
将仅打印远程存储库的基本名称

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

或者你推到的地方
basename $(git remote show -n origin | grep Push | cut -d: -f2-)

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

我使用这个:

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

它返回类似gitRepo东西。 (删除命令末尾的.gitgitRepo.git类的gitRepo.git 。)

(注意:需要git> = 2.7.0)

 git remote show origin -n | ruby -ne 'puts /^\s*Fetch.*(:|\/){1}([^\/]+\/[^\/]+).git/.match($_)[2] rescue nil' 

用3个url风格testing:

 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'