web-dev-qa-db-ja.com

Gitでクローンを作成した元のリポジトリの名前を見つける

構文を使用して最初のクローンを作成するとき

git clone username@server:gitRepo.git

ローカルリポジトリを使用してその初期クローンの名前を見つけることは可能ですか? (したがって、上記の例ではgitRepo.gitを見つけます)

100
Toby

リポジトリのルートでは、.git/configファイルはリモートのリポジトリとブランチに関するすべての情報を保持します。あなたの例では、次のようなものを探す必要があります。

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

また、gitコマンド:git remote -vは、リモートリポジトリの名前とURLを表示します。 「Origin」リモートリポジトリは通常、ローカルコピーのクローン元である元のリポジトリに対応しています。

84
allait
git config --get remote.Origin.url
84
Straff

これはおそらくあなたが探しているクイックbashコマンドです
リモートリポジトリのベース名のみを出力します

フェッチする場所from
basename $(git remote show -n Origin | grep Fetch | cut -d: -f2-)

あるいは、プッシュする場所to
basename $(git remote show -n Origin | grep Push | cut -d: -f2-)

特に-nオプションはコマンドをより速くします

27
Casey

私はこれを使用します:

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

gitRepoのようなものを返します。 (コマンドの最後にある.gitを削除して、gitRepo.gitのようなものに戻します。)

(注:git> = 2.7.0が必要です)

8
adzenith
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: [email protected]: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'
0
haolun