Pertanyaan Bagaimana saya bisa menentukan URL yang merupakan asal dari repositori Git lokal?


Saya menarik proyek dari GitHub beberapa hari yang lalu. Saya telah menemukan bahwa ada beberapa garpu di GitHub, dan saya lupa untuk mencatat yang mana yang saya ambil awalnya. Bagaimana saya bisa menentukan garpu mana yang saya tarik?


2768
2017-11-03 16:47


asal


Jawaban:


Jika Anda hanya menginginkan URL jarak jauh, atau integritas referensial telah rusak:

git config --get remote.origin.url

Jika Anda membutuhkan keluaran penuh atau integritas referensial masih utuh:

git remote show origin

Ketika menggunakan git clone (dari GitHub, atau sumber repositori apa pun) nama default untuk sumber klon adalah "asal". Menggunakan git remote show akan menampilkan informasi tentang nama remote ini. Beberapa baris pertama seharusnya menunjukkan:

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:

Jika Anda ingin menggunakan nilai dalam skrip, Anda akan menggunakan perintah pertama yang tercantum dalam jawaban ini.


3926
2017-11-03 16:50



Jika Anda menginginkan ini untuk keperluan scripting, Anda hanya bisa mendapatkan URL dengan

git config --get remote.origin.url

497
2017-11-03 19:35



Anda dapat mencoba:

git remote -v

Ini akan mencetak semua URL ambil / dorong remote Anda.


421
2018-01-29 12:01



Untuk mendapatkan jawabannya:

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

Ini lebih baik daripada membaca konfigurasi; mengacu kepada halaman manual untuk git-ls-remote:

--get-url

Perluas URL dari repositori jarak jauh yang diberikan dengan mempertimbangkan   apa saja "url.<base>.insteadOf" pengaturan konfigurasi (Lihat git-config(1)) dan   keluar tanpa berbicara dengan remote.

Seperti yang ditunjukkan oleh @Jefromi, opsi ini ditambahkan di v1.7.5 dan tidak didokumentasikan sampai v1.7.12.2 (2012-09).


195
2018-06-02 05:15



Dengan Git 2.7 (rilis 5 Januari 2015), Anda memiliki solusi yang lebih koheren git remote:

git remote get-url origin

(liontin bagus git remote set-url origin <newurl>)

Lihat komit 96f78d3 (16 Sep 2015) oleh Ben Boeckel (mathstuf).
(Digabung oleh Junio ​​C Hamano - gitster - di lakukan e437cbd, 05 Okt 2015):

remote: tambahkan subcommand get-url

Memperluas insteadOf adalah bagian dari ls-remote --url dan tidak ada jalan   memperluas pushInsteadOf demikian juga.
  Tambah sebuah get-url perintah bawah untuk dapat melakukan kueri keduanya serta cara untuk mendapatkan semua URL yang dikonfigurasi.

get-url:

Mengambil URL untuk remote.
  Konfigurasi untuk insteadOf dan pushInsteadOf diperluas di sini.
  Secara default, hanya URL pertama yang terdaftar.

  • Dengan '--push', URL push dipertanyakan daripada mengambil URL.
  • Dengan '--all', semua URL untuk remote akan terdaftar.

Sebelum git 2.7, Anda memiliki:

 git config --get remote.[REMOTE].url
 git ls-remote --get-url [REMOTE]
 git remote show [REMOTE]

63
2017-10-07 12:07



Untuk meringkas, setidaknya ada empat cara:

(Berikut ini dicoba untuk repositori Linux resmi)

Informasi paling sedikit:

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

dan

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

Informasi lebih lanjut:

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

Informasi lebih lanjut:

$ 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)

43
2018-05-15 15:28



Jawaban singkat:

$ git remote show -n origin

atau, alternatif untuk skrip cepat murni:

$ git config --get remote.origin.url

Beberapa info:

  1. $ git remote -v akan mencetak semua remote (bukan yang Anda inginkan). Anda ingin asal kan?
  2. $ git remote show origin jauh lebih baik, hanya menunjukkan origin tetapi membutuhkan waktu terlalu lama (diuji pada git versi 1.8.1.msysgit.1).

Saya berakhir dengan: $ git remote show -n origin, yang tampaknya paling cepat. Dengan -n itu tidak akan mengambil kepala jarak jauh (cabang AKA). Anda tidak membutuhkan info semacam itu, bukan?

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

Anda bisa mendaftar | grep -i fetch ke semua tiga versi untuk hanya menampilkan URL pengambilan.

Jika Anda membutuhkan kecepatan murni, maka gunakan:

$ git config --get remote.origin.url

Terimakasih untuk @Jefromi untuk menunjukkan itu.


16
2018-02-27 18:11



Saya pikir Anda dapat menemukannya di bawah .git/config dan remote["origin"] jika kamu tidak memanipulasi itu.


15
2017-11-03 16:50