Kaip nustatyti URL, iš kurio klonuojamas vietinis „Git“ saugykla?

Prieš kelias dienas ištraukiau projektą iš githubo. Nuo tada pastebėjau, kad „GitHub“ yra keletas šakių, ir aš pamiršau paminėti, kurį iš pradžių aš paėmiau. Kaip galiu nustatyti, kuris iš šių kištukų ištrauktas?

2301
03 нояб. „Tim 03 Nov“ rinkinys. 2010-11-03 19:47 '10, 19:47, 2010-11-03 19:47
@ 17 atsakymų

Jei buvo pažeistas referencinis vientisumas:

 git config --get remote.origin.url 

Jei nuorodos vientisumas nėra pažeistas:

 git remote show origin 

Naudojant git clone (iš GitHub arba bet kurio šaltinio saugyklos), klono šaltinio numatytasis parametras yra „šaltinis“. Naudojant „ git remote show rodoma informacija apie šį nuotolinį pavadinimą. Pirmosiose eilutėse turėtų būti rodoma:

 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: 

Jei norite naudoti scenarijaus vertę, turite naudoti pirmąją komandą, nurodytą šiame atsakyme.

3252
03 нояб. Atsakymas duotas JaredPar 03 lapkričio. 2010-11-03 19:50 '10, 19:50, 2010-11-03 19:50

Jei norite naudoti šį scenarijų, galite gauti tik URL iš

border=0
 git config --get remote.origin.url 
453
03 нояб. atsakymas duotas Jefromi 03 lapkričio. 2010-11-03 22:35 '10 10:35 val. 2010-11-03 22:35

Galite pabandyti:

 git remote -v 

Bus rodomi visi jūsų URL, kad galėtumėte gauti / išjungti nuotolinio valdymo pultus.

354
29 янв. Atsakymas pateikiamas Montaro sausio 29 d 2012-01-29 15:01 '12, 15:01 2012-01-29 15:01

Jei norite gauti atsakymą:

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

Tai geriau nei konfigūracijos skaitymas; Žiūrėkite git-ls-remote vadovą :

- get-url

Įdiegti šio nuotolinio saugyklos URL, atsižvelgiant į bet kurį konfigūracijos nustatymą "url.<base>.insteadOf" (žr. "url.<base>.insteadOf" git-config(1) ) ir išeiti be kalbėjimo su nuotolinio valdymo pultu.

Kaip pažymėjo @ Jefromi, šis parametras buvo pridėtas v.1.7.5 ir nėra dokumentuojamas tol, kol v1.7.12. 2

179
02 июня '13 в 8:15 2013-06-02 08:15 atsakymas pateikiamas arcresu 02 birželio 13 d. 8:15 2013-06-02 08:15

Naudodami „Git 2.7“ (išleistas 2015 m. Sausio 5 d.), Turite nuoseklesnį sprendimą naudojant „ git remote :

 git remote get-url origin 

(gražus „ git remote set-url origin <newurl> pakabukas „ git remote set-url origin <newurl> )

Žr. „ Ben mathstuf ( mathstuf ) „ 96f78d3“ (2015 m. Rugsėjo 16 d. ) .
( Junio ​​C Hamano - gitster - gitster kad įvykdytų e437cbd , 2015 m. Spalio 5 d.)

nuotolinis: pridėkite „get-url“ pakomentę

insteadOf yra „ ls-remote --url insteadOf dalis, todėl nėra galimybės išplėsti „ pushInsteadOf .
Pridėkite „ get-url pakomentę, kad galėtumėte prašyti abiejų metodų, taip pat būdą gauti visus sukonfigūruotus URL.

 get-url: 

Gauna nuotolinio įrenginio URL.
pushInsteadOf yra išplėstinės konfigūracijos. Pagal numatytuosius nustatymus nurodomas tik pirmasis URL.

  • --push URL prašoma iš „ --push “, o ne URL.
  • Su „ --all “ bus išvardyti visi konsolės URL.

Prieš Git 2.7, turėjote:

  git config --get remote.[REMOTE].url git ls-remote --get-url [REMOTE] git remote show [REMOTE] 
49
07 окт. atsakymas pateikiamas VonC 07 okt. 2015-10-07 15:07 '15, 15:07 2015-10-07 15:07

Apibendrinant, yra bent keturi būdai:

(Toliau buvo patvirtinta oficialios Linux saugyklos)

Mažiausia informacija:

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

ir

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

Papildoma informacija:

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

Daugiau informacijos:

 $ 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) 
37
15 мая '14 в 18:28 2014-05-15 18:28 atsakymas pateikiamas 太極 者 無極 而 生 gegužės 15 d., 14 val

Trumpas atsakymas:

 $ git remote show -n origin 

arba, alternatyva valyti sparčius scenarijus:

 $ git config --get remote.origin.url 

Keletas informacijos:

  • $ git remote -v spausdins visas konsoles (ne tai, ko norite). Ar norite teisingos kilmės?
  • $ git remote show origin daug geriau, rodo tik origin , bet užima per daug laiko (išbandyta git versijai 1.8.1.msysgit.1).

Aš: $ git remote show -n origin , kuris, atrodo, yra greičiausias. Su -n jis negaus nuotolinių galvučių (AKA filialai). Jums nereikia tokios informacijos, tiesa?

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

Galite kreiptis | grep -i fetch | grep -i fetch į visas tris versijas, kad parodytų tik ištraukos URL.

Jei jums reikia neto greičio, naudokite:

 $ git config --get remote.origin.url 

Ačiū @ Jefromi už tai, kad tai nurodė.

16
27 февр. Casey Feb 27 atsakymas 2013-02-27 21:11 '13, 21:11, 2013-02-27 21:11

Manau, kad galite jį rasti pagal .git/config ir remote["origin"] jei nesusiję su juo.

9
03 нояб. atsakymas į meder omuraliev 03.11 . 2010-11-03 19:50 '10, 19:50, 2010-11-03 19:50

Norėdami gauti IP adresą / hostname origin

ssh:// saugykloms:

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

git:// saugykloms:

 git ls-remote --get-url origin | cut -f 2 -d @ | cut -f 1 -d ":" 
6
24 июня '14 в 23:54 2014-06-24 23:54 Atsakymą pateikė Stephen , birželio 24 d. 14, 23:54 2014-06-24 23:54

Spausdinkite atsitiktinai įvardytus nuotolinio pavyzdžio URL:

 git remote -v | grep fetch | awk '{print $2}' 
5
21 янв. atsakymas pateikiamas Aron 21 jan. 2013-01-21 02:51 '13, 2:51, 2013-01-21 02:51

su git turėtumėte būti projekto kataloge, kad pradėtumėte nuotolinį rodymą. Bet jei norite identifikuoti URL iš kitos vietos, kurią galite naudoti

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

Jei jums reikia šios komandos dažnai, galite nustatyti slapyvardį .bashrc arba .bash_profile naudojant MacOS.

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

Taigi, tiesiog reikia skambinti giturl į git root aplanką, kad gautumėte tik jo URL.


EDIT:

Jei išplėsite šį slapyvardį taip

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

jūs gaunate tik paprastą URL, prieš tai nepasiekiant

"URL ="

į

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

Turite daugiau galimybių naudoti:

Pavyzdys

„Mac“ galite skambinti open $(giturl) kad atidarytumėte URL standartinėje naršyklėje.

Arba „ chrome $(giturl) norite jį atidaryti naudodami „Chrome“ naršyklę „Linux“.

5
21 нояб. atsakymas duotas Sedat Kilinc 21 nov. 2015-11-21 11:41 '15, 11:41 am 2015-11-21 11:41

Be kitų atsakymų: jei konsolė buvo pakeista dėl kokios nors priežasties ir todėl neatspindi pradinės kilmės, pirmasis įrašas refloge (tai yra paskutinis įrašas, rodomas git reflog ) turėtų nurodyti, kur buvo iš pradžių klonuotas repo.

Pavyzdžiui.

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

(Atkreipkite dėmesį, kad reflogą galima išvalyti, todėl tai nėra garantuojama.)

5
16 нояб. Atsakymą pateikė Jeremy , lapkričio 16 d. 2015-11-16 15:58 '15, 15:58, 2015-11-16 15:58

paprastas būdas atidaryti .git / config failą

cat .git/config

redagavimui

vim .git/config arba

nano .git/config

5
01 февр. Atsakymą pateikė Omar Makled 01 vasaris. 2017-02-01 14:05 '17, 14:05 pm 2017-02-01 14:05

Nuotolinio valdymo pulto negalima vadinti „šaltiniu“, todėl čia yra parinktis:

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

arba

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

daugiau naudingų kintamųjų yra:

 $ git config -l 
5
19 апр. Atsakymą pateikė cagney 19 d. 2013-04-19 23:49 '13, 23:49 PM 2013-04-19 23:49

Git URL bus git konfigūracijos failo viduje. Curepnds reikšmė url klavišui

  cd project_dir cat .git/config | grep url | awk '{print $3}' 
2
21 сент. atsakymą pateikė Harikrishnan 21 sep . 2017-09-21 13:50 '17, 13:50 pm 2017-09-21 13:50

Jei nežinote filialo nuotolinio baseino pavadinimo, pirmiausia galite jį peržiūrėti, patikrindami ankstesnio filialo, kuriame buvo pastatytas dabartinis filialas, pavadinimą. Naudokite „ git rev-parse :

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

Tai rodo, kad dabartinio filialo šaltinis buvo „upstream“ filialas. Tai galima išanalizuoti, kad gautas ištrintas pavadinimas būtų toks:

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

Dabar nuimkite jį ir perkelkite jį į git ls-remote , ir jūs gausite aukštesnio lygio konsolės URL, kuris yra dabartinio filialo šaltinis:

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

Dabar reikia pažymėti, kad tai nebūtinai yra tokia pati, kaip ir pradinė klonuota nuotolinė saugykla. Daugeliu atvejų tai pakaks.

1
09 авг. Christopherio atsakymas, pateiktas rugpjūčio 09 d 2017-08-09 03:38 '17 at 3:38 2017-08-09 03:38

Aš daugiausia naudojasi:

 git remote get-url origin 

Jis veikia „git bash“ komandų konsolėje arba „cmd“ komandų konsolėje „Windows“ sistemoje. Jis sakė, kad dirba su Git versija 2.x.

0
10 окт. atsakymas pateikiamas maytham-ɯɐɥʇʎɐɯ 10 okt. 2017-10-10 22:16 '17, 10:16 pm 2017-10-10 22:16

Kiti klausimai apie „ žymes arba „ Klauskite“