回答:
リポジトリルートでは、.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'
3つの異なる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'