Ik heb een paar dagen geleden een project van GitHub gehaald. Sindsdien heb ik ontdekt dat er verschillende forks op GitHub zijn, en ik vergat te noteren welke ik oorspronkelijk nam. Hoe kan ik bepalen aan welke van die vorken ik heb getrokken?
Antwoord 1, autoriteit 100%
Als u alleen de externe URL wilt, of als u niet bent verbonden met een netwerk dat de externe repo kan bereiken:
git config --get remote.origin.url
Als u volledige uitvoer nodig heeft en u bevindtzich op een netwerk dat de externe repo waar de oorsprong zich bevindt, kan bereiken:
git remote show origin
Bij gebruik van git clone
(van GitHub, of welke broncode dan ook) is de standaardnaam voor de bron van de kloon “oorsprong”. Door git remote show
te gebruiken, wordt de informatie over deze remote-naam weergegeven. De eerste paar regels moeten tonen:
C:\Users\jaredpar\VsVim> git remote show origin
* remote origin
Fetch URL: [email protected]:jaredpar/VsVim.git
Push URL: [email protected]:jaredpar/VsVim.git
HEAD branch: master
Remote branches:
Als u de waarde in het script wilt gebruiken, gebruikt u de eerste opdracht die in dit antwoord wordt vermeld.
Antwoord 2, autoriteit 10%
Als je dit voor scriptdoeleinden wilt, kun je alleen de URL krijgen met
git config --get remote.origin.url
Antwoord 3, autoriteit 10%
Je kunt het proberen:
git remote -v
Het zal alle ophaal-/push-URL’s van uw afstandsbedieningen afdrukken.
Antwoord 4, autoriteit 4%
Om het antwoord te krijgen:
git ls-remote --get-url [REMOTE]
Dit is beter dan het lezen van de configuratie; raadpleeg de man-pagina voor git-ls-remote
:
–get-url
Breid de URL van de gegeven externe repository uit, rekening houdend met
elke"url.<base>.insteadOf"
configuratie-instelling (ziegit-config(1)
) en
afsluiten zonder tegen de afstandsbediening te praten.
Zoals aangegeven door @Jefromi, is deze optie toegevoegd in v1.7.5en niet gedocumenteerd tot v1.7.12.2(2012-09).
Antwoord 5, autoriteit 2%
Met Git 2.7 (release 5 januari 2015), heb je een meer coherente oplossing met behulp van git remote
:
git remote get-url origin
(leuke hanger van git remote set-url origin <newurl>
)
Zie commit 96f78d3(16 sep 2015) door Ben Boeckel (mathstuf
).
(Samengevoegd door Junio C Hamano — gitster
—in commit e437cbd, 05 okt 2015):
remote: get-url subcommando toevoegen
Het uitbreiden van
insteadOf
is een onderdeel vanls-remote --url
en er is geen manier
om ookpushInsteadOf
uit te breiden.
Voeg eenget-url
subcommando toe om beide te kunnen bevragen, evenals een manier om alle geconfigureerde URL’s op te halen.
get-url:
Haalt de URL’s voor een afstandsbediening op.
Configuraties voorinsteadOf
enpushInsteadOf
worden hier uitgebreid.
Standaard wordt alleen de eerste URL weergegeven.
- Met ‘
--push
‘ worden push-URL’s opgevraagd in plaats van URL’s op te halen.- Met ‘
--all
‘ worden alle URL’s voor de afstandsbediening weergegeven.
Vóór git 2.7 had je:
git config --get remote.[REMOTE].url
git ls-remote --get-url [REMOTE]
git remote show [REMOTE]
Antwoord 6
Om samen te vatten, er zijn minstens vier manieren:
(Het volgende is geprobeerd voor de officiële Linux-repository)
Minste informatie:
$ git config --get remote.origin.url
https://github.com/torvalds/linux.git
en
$ git ls-remote --get-url
https://github.com/torvalds/linux.git
Meer informatie:
$ git remote -v
origin https://github.com/torvalds/linux.git (fetch)
origin https://github.com/torvalds/linux.git (push)
Nog meer informatie:
$ 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)
Antwoord 7
Ik denk dat je het kunt vinden onder .git/config
en remote["origin"]
als je dat niet hebt gemanipuleerd.
Antwoord 8
Kort antwoord:
$ git remote show -n origin
of een alternatief voor pure snelle scripts:
$ git config --get remote.origin.url
Enkele info:
$ git remote -v
Krijgt alle afstandsbedieningen af (niet wat u wilt). Wil je herkomst toch?$ git remote show origin
Veel beter, toont alleenorigin
maar duurt te lang (getest op git-versie 1.8.1.MSYGIT.1).
Ik eindigde met: $ git remote show -n origin
, die het snelst lijkt te zijn. Met -n
zal het geen externe hoofden (AKA-vestigingen) ophalen. U hebt dat type informatie niet nodig, toch?
http://www.kernel.org /pub//software/scm/git/docs/git-remote.html
U kunt | grep -i fetch
Naar alle drie de versies om alleen de FETCH-URL te tonen.
Als u pure snelheid nodig heeft, gebruikt u:
$ git config --get remote.origin.url
Dankzij @jefromi om dat uit te wijzen.
Antwoord 9
Voor mij is dit de gemakkelijkere manier (minder typen):
$ git remote -v
origin https://github.com/torvalds/linux.git (fetch)
origin https://github.com/torvalds/linux.git (push)
Eigenlijk, ik heb dat in een alias
genaamd s
dat:
git remote -v
git status
U kunt toevoegen aan uw profiel met:
alias s='git remote -v && git status'
Antwoord 10
Ik kan nooit alle parameters herinneren aan Git-opdrachten, dus doe ik gewoon een alias in de ~/.gitconfig
bestand die meer logisch voor mij is, dus ik kan het me herinneren, en het resulteert in minder typen:
[alias]
url = ls-remote --get-url
Na het herladen van de terminal kunt u dan alleen typen:
> git url
Hier zijn er nog een paar die ik vaak gebruik:
[alias]
cd = checkout
ls = branch
lsr = branch --remote
lst = describe --tags
Ik raad git-extrasook ten zeerste aan met een git info
commandodat veel meer gedetailleerde informatie geeft over de externe en lokale vestigingen.
Antwoord 11
Ik geef de voorkeur aan deze omdat het gemakkelijker te onthouden is:
git config -l
Het zal alle nuttige informatie weergeven, zoals:
user.name=Your Name
[email protected]
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
Antwoord 12
De Git-URL bevindt zich in het Git-configuratiebestand. De waarde komt overeen met de sleutel url
.
Gebruik voor Mac en Linux de onderstaande commando’s:
cd project_dir
cat .git/config | grep url | awk '{print $3}'
Voor Windows opent u het onderstaande bestand in een teksteditor en zoekt u de waarde voor key url
.
project_dir/.git/config
Opmerking: dit werkt zelfs als je offline bent of als de externe git-server is verwijderd.
Antwoord 13
Ik gebruik in principe:
git remote get-url origin
Het werkt voor de Git Bash-opdrachtconsole of CMD-opdrachtconsole in Windows. Dat gezegd hebbende, het werkt met versie 2.x van Git.
Antwoord 14
git config --list
Deze opdracht geeft alle informatie met betrekking tot uw repository.
Antwoord 15
De afstandsbediening van de stroomopwaartse mag niet “oorsprong” worden genoemd, dus hier is een variatie:
remote=$(git config --get branch.master.remote)
url=$(git config --get remote.$remote.url)
basename=$(basename "$url" .git)
echo $basename
Of:
basename $(git config --get remote.$(git config --get branch.master.remote).url) .git
Voor meer bruikbare variabelen is er:
$ git config -l
Antwoord 16
Om het IP-adres/de hostnaam van origin
te krijgen
Voor ssh://
opslagplaatsen:
git ls-remote --get-url origin | cut -f 2 -d @ | cut -f 1 -d "/"
Voor git://
opslagplaatsen:
git ls-remote --get-url origin | cut -f 2 -d @ | cut -f 1 -d ":"
Antwoord 17
Om de andere antwoorden aan te vullen: als de afstandsbediening om de een of andere reden is gewijzigd en dus niet de oorspronkelijke-oorsprong weergeeft, wordt het allereerste item in de reflog (dwz het laatste item weergegeven door de commando git reflog
) zou moeten aangeven waar de repo oorspronkelijk vandaan werd gekloond.
bijv.
$ git reflog | tail -n 1
f34be46 HEAD@{0}: clone: from https://github.com/git/git
$
(Houd er rekening mee dat de reflog kan worden verwijderd, dus het is niet gegarandeerd dat dit werkt.)
Antwoord 18
Met git remote show origin
moet je in de projects directory zijn. Maar als u de URL’s ergens anders wilt bepalen
je zou kunnen gebruiken:
cat <path2project>/.git/config | grep url
Als je deze opdracht vaak nodig hebt, kun je een alias definiëren in je .bashrc
of .bash_profile
met MacOS.
alias giturl='cat ./.git/config | grep url'
Dus u hoeft alleen maar giturl
in de git-root-map te bellen om eenvoudig de URL te verkrijgen.
Als u deze alias als deze verlengt
alias giturl='cat .git/config | grep -i url | cut -d'=' -f 2'
U krijgt alleen de duidelijke URL zonder de voorgaande
“URL =”
in
U krijgt meer mogelijkheden in het gebruik:
voorbeeld
Op Mac kunt u bellen open $(giturl)
om de URL in de standaardbrowser te openen.
of chrome $(giturl)
om deze te openen met de Chrome-browser op Linux.
Antwoord 19
Een eenvoudige manier is om de .git/config
bestand te openen:
cat .git/config
Bewerken:
vim .git/config
OF
nano .git/config
Antwoord 20
Print willekeurig genaamd Remote Fetch-URL’s:
git remote -v | grep fetch | awk '{print $2}'
Antwoord 21
u hebt uw repo gekloneerd met SSH-kloon.
git config --get remote.origin.url
[email protected]:company/product/production.git
Maar u wilt HTTP-URL krijgen om deze in de browser te openen of het te delen:
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 of Gitlab er niet toe.
Antwoord 22
Als u de naam van de upstream-afstandsbediening voor een vertakking niet weet, kunt u die eerst opzoeken door de naam van de stroomopwaartse vertakking te inspecteren waarop de huidige vertakking is gebouwd. Gebruik git rev-parse
als volgt:
git rev-parse --symbolic-full-name --abbrev-ref @{upstream}
Dit toont die stroomopwaartse vertakking die de bron was voor de huidige vertakking. Dit kan worden geparseerd om de externe naam als volgt te krijgen:
git rev-parse --symbolic-full-name --abbrev-ref @{upstream} | cut -d / -f 1
Neem dat nu en pijp het naar git ls-remote
en je krijgt de URL van de upstream remote die de bron is van de huidige branch:
git ls-remote --get-url \
$(git rev-parse --symbolic-full-name --abbrev-ref @{upstream} | cut -d / -f 1)
Nu moet worden opgemerkt dat dit niet noodzakelijk hetzelfde is als de externe bronrepository waaruit is gekloond. In veel gevallen zal het echter voldoende zijn.
Antwoord 23
#!/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"
}
Gebruik:
# 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 [email protected]:your-username/your-repository.git
cd your-repository
git-remote-url origin
Uitgang:
https://github.com/your-username/your-repository
Antwoord 24
EASY Gebruik gewoon deze opdracht waar u de map hebt geplaatst
git config --get remote.origin.url
Als u bent aangesloten op Netwerk
git remote show origin
Het toont u de URL waarvoor een lokale git-repository oorspronkelijk is gekloond.
Ik hoop dat deze hulp
Antwoord 25
Om alleen de externe URL te krijgen:
git config --get remote.origin.url
Gebruik de
om meer informatie over een bepaalde afstandsbediening te krijgen
git remote show [remote-name] command
Om afstandsbediening op afstand te zien
git remote show origin
om te zien waar u de map hebt geplaatst
git config --get remote.origin.url
Antwoord 26
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'"
Voeg deze expression toe aan .zshrc of .bashrcs op hoofddirectory
Nadat u wilt gebruiken als
git-repo
git-pr