Saya menarik sebuah proyek dari GitHub beberapa hari yang lalu. Sejak itu saya menemukan bahwa ada beberapa garpu di GitHub, dan saya lupa untuk mencatat yang mana yang saya ambil semula. Bagaimana saya bisa menentukan garpu mana yang saya tarik?
git
github
git-remote
Tim
sumber
sumber
git remote get-url origin
akan dimungkinkan. Lihat jawaban saya di bawah inigit remote get-url origin
tidak bekerja untuk saya - mungkin sudah usang?git remote show origin
bekerja sekalipun.git remote -v
memberi Anda banyak informasi, termasuk ini.git remote get-url origin --push
berfungsi dengan baik, tampaknya tidak disusutkan dan memberikan info singkat yang bagus (git remote show origin
bisa sangat verbose) qvgit help remote
.Jawaban:
Jika Anda hanya menginginkan URL jarak jauh, atau jika Anda tidak terhubung ke jaringan yang dapat mencapai repo jarak jauh:
Jika Anda memerlukan output penuh dan Anda berada di jaringan yang dapat mencapai repo jarak jauh tempat asal berada:
Saat menggunakan
git clone
(dari GitHub, atau repositori sumber apa pun dalam hal ini) nama default untuk sumber klon adalah "asal". Menggunakangit remote show
akan menampilkan informasi tentang nama jarak jauh ini. Beberapa baris pertama harus menunjukkan:Jika Anda ingin menggunakan nilai dalam skrip, Anda akan menggunakan perintah pertama yang tercantum dalam jawaban ini.
sumber
git remote show origin
(opsional dengan bendera -n yang disediakan oleh @ Casey), atau dengangit remote -v
seperti yang disarankan oleh @Montaro dan @rodel..gitconfig
file itu akan memilikinya, tetapi saya tidak melihatnya di tangan saya.´~/.gitconfig
bersifat global untuk semuagit
repositori, ini di sini berasal dari konfigurasi lokal yang biasanya ada di.git/config
(namun untuk git-submodules jawabannya sedikit lebih sulit). Catat itustrace git config --get remote.origin.url
adalah temanmu.Jika Anda menginginkan ini untuk keperluan skrip, Anda hanya bisa mendapatkan URL
sumber
git remote show origin
hanya menunjukkan "conq: repositori tidak ada.").url.<base>.insteadOf
. Lihat jawaban saya - git memiliki perintah untuk tujuan ini.Anda dapat mencoba:
Ini akan mencetak semua URL ambil / dorong remote Anda.
sumber
Untuk mendapatkan jawabannya:
Ini lebih baik daripada membaca konfigurasi; lihat halaman manual untuk
git-ls-remote
:Seperti yang ditunjukkan oleh @Jefromi, opsi ini ditambahkan dalam v1.7.5 dan tidak didokumentasikan hingga v1.7.12.2 (2012-09).
sumber
origin
.remote get-url
opsi lama . Itu pengganti drop-in.Dengan Git 2.7 (rilis 5 Januari 2015), Anda memiliki solusi yang lebih koheren menggunakan
git remote
:(liontin bagus
git remote set-url origin <newurl>
)Lihat komit 96f78d3 (16 Sep 2015) oleh Ben Boeckel (
mathstuf
) .(Digabung oleh Junio C Hamano -
gitster
- dalam komit e437cbd , 05 Okt 2015) :Sebelum git 2.7, Anda memiliki:
sumber
Sebagai rangkuman, setidaknya ada empat cara:
(Berikut ini dicoba untuk repositori Linux resmi)
Informasi paling sedikit:
dan
Informasi lebih lanjut:
Informasi lebih lanjut:
sumber
git config --get remote.origin.url
mengambil URL asli yang ditetapkan dengangit remote add ...
ataugit remote set-url ...
saatgit ls-remote --get-url origin
mengambil URL yang sebenarnya digunakan untuk mengakses remote - yang mungkin berbeda di hadapangit config --global url.XXX.insteadOf YYY
. Jadi kedua output mungkin berbeda! Perhatikan juga bahwagit ls-remote --get-url
(tanpaorigin
) tidak perlu mengambilorigin
, melainkan menunjukkan hulu yang dilacak, sehingga akan gagal misalnya dalam keadaan HEAD terpisah.Saya pikir Anda dapat menemukannya di bawah
.git/config
danremote["origin"]
jika Anda tidak memanipulasinya.sumber
Jawaban singkat:
atau, alternatif untuk skrip cepat murni:
Beberapa info:
$ git remote -v
akan mencetak semua remote (bukan yang Anda inginkan). Anda ingin asal bukan?$ git remote show origin
jauh lebih baik, hanya menunjukkanorigin
tetapi memakan 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 remote head (cabang AKA). Anda tidak memerlukan jenis info itu, bukan?http://www.kernel.org/pub//software/scm/git/docs/git-remote.html
Anda dapat menerapkan
| grep -i fetch
ke ketiga versi untuk hanya menampilkan URL yang diambil.Jika Anda membutuhkan kecepatan murni, maka gunakan:
Terima kasih kepada @Jefromi karena menunjukkannya.
sumber
Bagi saya, ini adalah cara yang lebih mudah (kurang mengetik):
sebenarnya, saya sudah menjadi yang
alias
disebuts
yang tidak:Anda dapat menambahkan ke profil Anda dengan:
alias s='git remote -v && git status'
sumber
Saya tidak pernah bisa mengingat semua parameter untuk perintah Git, jadi saya hanya memasukkan alias di
~/.gitconfig
file yang lebih masuk akal bagi saya, jadi saya bisa mengingatnya, dan hasilnya kurang mengetik:Setelah memuat ulang terminal, Anda bisa mengetik:
Berikut adalah beberapa yang lebih sering saya gunakan:
Saya juga sangat merekomendasikan git-ekstra yang memiliki
git info
perintah yang memberikan informasi lebih rinci tentang cabang-cabang jarak jauh dan lokal.sumber
URL Git akan berada di dalam file konfigurasi Git. Nilai sesuai dengan kunci
url
.Untuk Mac dan Linux gunakan perintah di bawah ini:
Untuk Windows, buka file di bawah ini dalam editor teks apa pun dan temukan nilai untuk kunci
url
.Catatan: Ini akan berfungsi bahkan jika Anda sedang offline atau server git jarak jauh telah dihapus.
sumber
git remote get-url origin >> fatal: No such remote 'origin'
,git config --get remote.origin.url >>
Saya pada dasarnya menggunakan:
Ini bekerja untuk konsol perintah Git Bash atau konsol perintah CMD di Windows. Yang mengatakan, ini berfungsi dengan versi 2.x dari Git.
sumber
Perintah ini akan memberikan semua informasi yang terkait dengan repositori Anda.
sumber
Remote hulu mungkin tidak disebut "asal", jadi inilah variasi:
Atau:
Untuk variabel yang lebih bermanfaat ada:
sumber
Untuk mendapatkan alamat IP / nama host dari
origin
Untuk
ssh://
repositori:Untuk
git://
repositori:sumber
ssh
ini hanya berfungsi jika tidak ada~/.ssh/config
yang menulis ulang nama host atau alias.Untuk melengkapi jawaban lain: Jika remote untuk beberapa alasan telah diubah dan tidak mencerminkan asal aslinya , entri pertama di reflog (yaitu entri terakhir ditampilkan oleh perintah
git reflog
) harus menunjukkan di mana repo awalnya dikloning. dari.misalnya
(Ingatlah bahwa reflog dapat dibersihkan, jadi ini tidak dijamin berfungsi.)
sumber
Dengan
git remote show origin
Anda harus berada di direktori proyek. Tetapi jika Anda ingin menentukan URL dari tempat lain Anda bisa menggunakan:Jika Anda sering membutuhkan perintah ini, Anda bisa mendefinisikan alias di
.bashrc
atau.bash_profile
dengan MacOS Anda.Jadi Anda hanya perlu memanggil
giturl
di folder root Git untuk mendapatkan URL-nya.Jika Anda memperpanjang alias ini seperti ini
Anda hanya mendapatkan URL biasa tanpa yang sebelumnya
di
Anda mendapatkan lebih banyak kemungkinan dalam penggunaannya:
Contoh
Di Mac Anda bisa menelepon
open $(giturl)
untuk membuka URL di peramban standar.Atau
chrome $(giturl)
untuk membukanya dengan browser Chrome di Linux.sumber
Cara sederhana adalah membuka
.git/config
file:Untuk mengedit:
vim .git/config
ataunano .git/config
sumber
Cetak sembarang nama URL ambil jarak jauh:
sumber
Jika Anda tidak tahu nama remote hulu untuk cabang, Anda bisa mencarinya terlebih dahulu dengan memeriksa nama cabang hulu tempat cabang saat ini dibangun. Gunakan
git rev-parse
seperti ini:Ini menunjukkan bahwa cabang hulu yang merupakan sumber untuk cabang saat ini. Ini dapat diuraikan untuk mendapatkan nama jarak jauh seperti ini:
Sekarang ambil dan pipa itu ke
git ls-remote
dan Anda akan mendapatkan URL dari remote upstream yang merupakan sumber dari cabang saat ini:Sekarang harus dicatat, bahwa ini tidak selalu sama dengan repositori sumber jarak jauh yang dikloning. Namun dalam banyak kasus itu sudah cukup.
sumber
Pemakaian:
Keluaran:
sumber
Saya lebih suka yang ini karena lebih mudah diingat:
Ini akan mencantumkan semua informasi yang berguna seperti:
sumber
mudah hanya menggunakan perintah ini di mana Anda menempatkan folder .git
git config --get remote.origin.url
jika Anda terhubung ke jaringan
git remote show origin
itu akan menunjukkan kepada Anda URL tempat repositori Git lokal awalnya dikloning.
semoga ini membantu
sumber