4830

数日前にGitHubからプロジェクトをプルしました。それ以来、GitHubにいくつかのフォークがあることを発見し、最初にどのフォークを使用したかを書き留めていませんでした。引っ張ったフォークをどのように判断できますか?

4

26 に答える 26

6756

リモートURLのみが必要な場合、またはリモートリポジトリに到達できるネットワークに接続していない場合:

git config --get remote.origin.url

完全な出力が必要で、オリジンが存在するリモートリポジトリに到達できるネットワーク上にいる場合:

git remote show origin

git clone(GitHub、またはそのことについては任意のソースリポジトリから)使用する場合、クローンのソースのデフォルト名は「origin」です。を使用git remote showすると、このリモート名に関する情報が表示されます。最初の数行は次のように表示されます。

C:\Users\jaredpar\VsVim> git remote show origin
* remote origin
  Fetch URL: git@github.com:jaredpar/VsVim.git
  Push  URL: git@github.com:jaredpar/VsVim.git
  HEAD branch: master
  Remote branches:

スクリプトで値を使用する場合は、この回答にリストされている最初のコマンドを使用します。

于 2010-11-03T16:50:16.040 に答える
687

スクリプトの目的でこれが必要な場合は、次のURLのみを取得できます。

git config --get remote.origin.url
于 2010-11-03T19:35:43.757 に答える
658

あなたが試すことができます:

git remote -v

すべてのリモートのフェッチ/プッシュURLが出力されます。

于 2012-01-29T12:01:29.257 に答える
295

答えを得るには:

git ls-remote --get-url [REMOTE]

これは、構成を読み取るよりも優れています。のマニュアルページをgit-ls-remote参照してください:

--get-url

"url.<base>.insteadOf"構成設定(を参照)を考慮して、指定されたリモートリポジトリのURLをgit-config(1)展開し、リモートと通信せずに終了します。

@Jefromiが指摘しているように、このオプションはv1.7.5で追加され、 v1.7.12.2(2012-09)まで文書化されていません。

于 2013-06-02T05:15:59.510 に答える
142

Git 2.7(2015年1月5日リリース)では、以下を使用してより一貫性のあるソリューションを利用できますgit remote

git remote get-url origin

(の素敵なペンダントgit remote set-url origin <newurl>

Ben Boeckel()によるcommit 96f78d3(2015年9月16日)を参照してください。( Junio C Hamanoによってマージされました---コミットe437cbd、2015年10月5日mathstuf
gitster

リモート:get-urlサブコマンドを追加

拡張insteadOfはの一部でls-remote --urlあり、拡張する方法もありませんpushInsteadOf
サブコマンドを追加して、get-url構成済みのすべてのURLを取得する方法と同様に両方をクエリできるようにします。

get-url:

リモートのURLを取得します。および
の構成はここで展開されます。 デフォルトでは、最初のURLのみがリストされます。insteadOfpushInsteadOf

  • ' --push'を使用すると、URLをフェッチするのではなく、プッシュURLが照会されます。
  • ' --all'を使用すると、リモートのすべてのURLが一覧表示されます。

git 2.7より前は、次のようなものがありました。

 git config --get remote.[REMOTE].url
 git ls-remote --get-url [REMOTE]
 git remote show [REMOTE]
于 2015-10-07T12:07:58.980 に答える
107

要約すると、少なくとも4つの方法があります。

公式のLinuxリポジトリを使用して試してみてください。

最小限の情報:

$ git config --get remote.origin.url
https://github.com/torvalds/linux.git

$ git ls-remote --get-url
https://github.com/torvalds/linux.git

詳しくは:

$ git remote -v
origin    https://github.com/torvalds/linux.git (fetch)
origin    https://github.com/torvalds/linux.git (push)

さらに詳しい情報:

$ git remote show origin
* remote origin
  Fetch URL: https://github.com/torvalds/linux.git
  Push  URL: https://github.com/torvalds/linux.git
  HEAD branch: master
  Remote branch:
    master tracked
  Local branch configured for 'git pull':
    master merges with remote master
  Local ref configured for 'git push':
    master pushes to master (up to date)
于 2014-05-15T15:28:53.670 に答える
29

私はあなたがそれを下で見つけることができると思います、.git/configそしてremote["origin"]あなたがそれを操作しなかったならば。

于 2010-11-03T16:50:48.537 に答える
26

私にとって、これはより簡単な方法です(入力が少ない):

$ git remote -v
origin    https://github.com/torvalds/linux.git (fetch)
origin    https://github.com/torvalds/linux.git (push)

実際、私はそれを次のようにalias呼ばれるsものにしました。

git remote -v
git status

次の方法でプロファイルに追加できます。 alias s='git remote -v && git status'

于 2019-02-11T18:39:37.677 に答える
25

短い答え:

$ git remote show -n origin

または、純粋なクイックスクリプトの代替:

$ git config --get remote.origin.url

いくつかの情報:

  1. $ git remote -vすべてのリモコンを印刷します(必要なものではありません)。あなたは起源が欲しいですか?
  2. $ git remote show originはるかに優れており、表示のみoriginですが時間がかかりすぎます(gitバージョン1.8.1.msysgit.1でテスト済み)。

私は結局:$ git remote show -n origin、これは最速のようです。これを使用-nすると、リモートヘッド(別名ブランチ)をフェッチしません。そのような情報は必要ありませんよね?

http://www.kernel.org/pub//software/scm/git/docs/git-remote.html

3つのバージョンすべてに適用| grep -i fetchして、フェッチURLのみを表示できます。

純粋な速度が必要な場合は、次を使用します。

$ git config --get remote.origin.url

それを指摘してくれた@Jefromiに感謝します。

于 2013-02-27T18:11:45.503 に答える
20

Gitコマンドのすべてのパラメーターを思い出せないので、~/.gitconfigファイルに自分にとって意味のあるエイリアスを配置するだけで、覚えることができ、入力が少なくなります。

[alias]
url = ls-remote --get-url

ターミナルをリロードした後、次のように入力できます。

> git url

これが私の頻繁に使用するもののいくつかです:

[alias]
cd = checkout
ls = branch
lsr = branch --remote
lst = describe --tags

また、リモートブランチとローカルブランチに関するより詳細な情報を提供するコマンドを備えたgit-extrasを強くお勧めします。git info

于 2018-01-14T19:57:01.020 に答える
19

覚えやすいので、これが好きです。

git config -l

次のようなすべての有用な情報が一覧表示されます。

user.name=Your Name
user.email=your.name@notexisting.com
core.autocrlf=input
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
remote.origin.url=https://github.com/mapstruct/mapstruct-examples
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
branch.master.remote=origin
branch.master.merge=refs/heads/master
于 2020-02-12T09:55:10.833 に答える
17

GitのURLはGit構成ファイル内にあります。値はキーに対応しますurl

MacおよびLinuxの場合、以下のコマンドを使用します。

 cd project_dir
 cat .git/config | grep url | awk '{print $3}'

Windowsの場合、以下のファイルを任意のテキストエディタで開き、keyの値を見つけますurl

project_dir/.git/config

注:これは、オフラインの場合やリモートgitサーバーが停止している場合でも機能します。

于 2017-09-21T10:50:05.557 に答える
16

私は基本的に使用します:

git remote get-url origin

これは、WindowsのGitBashコマンドコンソールまたはCMDコマンドコンソールで機能します。そうは言っても、Gitのバージョン2.xで動作します。

于 2017-10-10T19:16:23.223 に答える
13
git config --list

このコマンドは、リポジトリに関連するすべての情報を提供します。

于 2019-05-28T07:20:08.417 に答える
12

アップストリームのリモートは「オリジン」と呼ばれない場合があるため、バリエーションを次に示します。

remote=$(git config --get branch.master.remote)
url=$(git config --get remote.$remote.url)
basename=$(basename "$url" .git)
echo $basename

または:

basename $(git config --get remote.$(git config --get branch.master.remote).url) .git

より有用な変数については、次のものがあります。

$ git config -l
于 2013-04-19T20:49:45.577 に答える
11

簡単な方法は、.git/configファイルを開くことです。

cat .git/config

編集するには:

vim .git/configまた

nano .git/config

于 2017-02-01T11:05:57.843 に答える
10

のIPアドレス/ホスト名を取得するにはorigin

ssh://リポジトリの場合:

git ls-remote --get-url origin | cut -f 2 -d @ | cut -f 1 -d "/"

git://リポジトリの場合:

git ls-remote --get-url origin | cut -f 2 -d @ | cut -f 1 -d ":"
于 2014-06-24T20:54:22.383 に答える
10

他の回答を補足するために:リモートが何らかの理由で変更され、元のオリジンを反映していない場合、reflogの最初のエントリ(つまり、コマンドによって表示される最後のエントリgit reflog)は、リポジトリが最初に複製された場所を示す必要がありますから。

例えば

$ git reflog | tail -n 1
f34be46 HEAD@{0}: clone: from https://github.com/git/git
$

(reflogがパージされる可能性があるため、これが機能することは保証されないことに注意してください。)

于 2015-11-16T12:58:41.837 に答える
10

git remote show originプロジェクトディレクトリにいる必要があります。ただし、他の場所からURLを判別する場合は、次を使用できます。

cat <path2project>/.git/config | grep url

.bashrcこのコマンドが頻繁に必要になる場合は、MacOSまたはMacOSでエイリアスを定義できます.bash_profile

alias giturl='cat ./.git/config | grep url'

giturlしたがって、URLを取得するために、Gitルートフォルダーを呼び出す必要があります。


このエイリアスをこのように拡張すると

alias giturl='cat .git/config | grep -i url | cut -d'=' -f 2'

先行なしのプレーンURLのみを取得します

"url ="

url = http://example.com/repo.git

あなたはその使用法でより多くの可能性を手に入れます:

open $(giturl)Macでは、標準のブラウザでURLを開くために呼び出すことができます。

またはchrome $(giturl)、LinuxのChromeブラウザで開きます。

于 2015-11-21T08:41:13.310 に答える
10

SSHクローンを使用してリポジトリのクローンを作成しました。

git config --get remote.origin.url
git@gitlab.com:company/product/production.git

ただし、http urlを取得してブラウザで開くか、共有する必要があります。

git config --get remote.origin.url | sed -e 's/:/\//g'| sed -e 's/ssh\/\/\///g'| sed -e 's/git@/https:\/\//g'

https://gitlab.com/company/product/production.git

GitHubまたはGitLabは関係ありません。

于 2020-09-15T18:27:55.310 に答える
8

任意の名前のリモートフェッチURLを出力します。

git remote -v | grep fetch | awk '{print $2}'
于 2013-01-20T23:51:59.127 に答える
7

ブランチのアップストリームリモートの名前がわからない場合は、現在のブランチが構築されているアップストリームブランチ名を調べることで、最初にそれを調べることができます。このように使用git rev-parseします:

git rev-parse --symbolic-full-name --abbrev-ref @{upstream}

これは、現在のブランチのソースであったアップストリームブランチを示しています。これを解析して、次のようなリモート名を取得できます。

git rev-parse --symbolic-full-name --abbrev-ref @{upstream} | cut -d / -f 1

それを取得してにパイプするとgit ls-remote、現在のブランチのソースであるアップストリームリモートのURLが取得されます。

git ls-remote --get-url \
  $(git rev-parse --symbolic-full-name --abbrev-ref @{upstream} | cut -d / -f 1)

ここで、これはクローン元のソースリモートリポジトリと必ずしも同じではないことに注意してください。ただし、多くの場合、それで十分です。

于 2017-08-09T00:38:04.250 に答える
6
#!/bin/bash

git-remote-url() {
 local rmt=$1; shift || { printf "Usage: git-remote-url [REMOTE]\n" >&2; return 1; }
 local url

 if ! git config --get remote.${rmt}.url &>/dev/null; then
  printf "%s\n" "Error: not a valid remote name" && return 1
  # Verify remote using 'git remote -v' command
 fi

 url=`git config --get remote.${rmt}.url`

 # Parse remote if local clone used SSH checkout
 [[ "$url" == git@* ]] \
 && { url="https://github.com/${url##*:}" >&2; }; \
 { url="${url%%.git}" >&2; };

 printf "%s\n" "$url"
}

使用法:

# Either launch a new terminal and copy `git-remote-url` into the current shell process, 
# or create a shell script and add it to the PATH to enable command invocation with bash.

# Create a local clone of your repo with SSH, or HTTPS
git clone git@github.com:your-username/your-repository.git
cd your-repository

git-remote-url origin

出力:

https://github.com/your-username/your-repository
于 2018-01-03T03:35:15.827 に答える
6

リモートURLのみを取得するには:

git config --get remote.origin.url

特定のリモートに関する詳細を取得するには、

git remote show [remote-name] command

リモートURLを表示するには

git remote show origin

.gitフォルダーが配置された場所を確認するには

git config --get remote.origin.url
于 2021-03-20T18:51:34.330 に答える
3

.gitフォルダを配置した場所でこのコマンドを使用するだけで簡単です

git config --get remote.origin.url

ネットワークに接続している場合

git remote show origin

ローカルのGitリポジトリが最初に複製されたURLが表示されます。

この助けを願っています

于 2020-01-14T10:47:52.540 に答える
2
alias git-repo="git config --get remote.origin.url | sed -e 's/:/\//g'| sed -e 's/ssh\/\/\///g'| sed -e 's/git@/https:\/\//g'"
alias git-pr="git config --get remote.origin.url | sed -e 's/:/\//g'| sed -e 's/ssh\/\/\///g'| sed -e 's/git@/https:\/\//g' | sed 's/....$//' | sed -ne 's/$/\/pulls &/p'"

この式をメインディレクトリの.zshrcまたは.bashrcsに追加します

あなたがのように使用できるようにした後

git-repo
git-pr
于 2021-02-27T03:36:17.407 に答える