Tirei um projeto do GitHub há alguns dias atrás. Desde então, descobri que existem vários garfos no GitHub e deixei de notar qual deles eu peguei originalmente. Como posso determinar qual desses garfos eu puxei?
git
github
git-remote
Tim
fonte
fonte
git remote get-url origin
será possível. Veja minha resposta abaixogit remote get-url origin
não funciona para mim - possivelmente obsoleto?git remote show origin
funcionou embora.git remote -v
dar muitas informações, incluindo isso.git remote get-url origin --push
funciona bem, aparentemente não é depreciado e fornece boas informações breves (git remote show origin
pode ser muito detalhado) qvgit help remote
.Respostas:
Se você deseja apenas o URL remoto, ou se não estiver conectado a uma rede que possa acessar o repositório remoto:
Se você precisar de uma saída completa e estiver em uma rede que possa alcançar o repositório remoto onde a origem reside:
Ao usar
git clone
(no GitHub ou em qualquer repositório de origem), o nome padrão para a origem do clone é "origem". O usogit remote show
exibirá as informações sobre esse nome remoto. As primeiras linhas devem mostrar:Se você quiser usar o valor no script, use o primeiro comando listado nesta resposta.
fonte
git remote show origin
(opcionalmente com o sinalizador -n fornecido por @ Casey), ougit remote -v
conforme sugerido por @Montaro e @rodel..gitconfig
arquivo o teria, mas não o vi no meu.´~/.gitconfig
é global para todos osgit
repositórios; isso aqui vem da configuração local que normalmente está presente.git/config
(no entanto, para os sub-módulos git, a resposta é um pouco mais difícil). Note questrace git config --get remote.origin.url
é seu amigo.Se você quiser isso para fins de script, poderá obter apenas o URL com
fonte
git remote show origin
apenas mostra "conq: o repositório não existe.").url.<base>.insteadOf
. Veja minha resposta - o git tem um comando para esse fim.Podes tentar:
Ele imprimirá todos os URLs de busca / envio de seus controles remotos.
fonte
Para obter a resposta:
Isso é melhor do que ler a configuração; consulte a página de manual para
git-ls-remote
:Conforme apontado por @Jefromi, esta opção foi adicionada na v1.7.5 e não foi documentada até a v1.7.12.2 (2012-09).
fonte
origin
.remote get-url
opção antiga . É uma substituição imediata.Com o Git 2.7 (lançado em 5 de janeiro de 2015), você tem uma solução mais coerente usando
git remote
:(belo pingente de
git remote set-url origin <newurl>
)Veja commit 96f78d3 (16 de setembro de 2015) de Ben Boeckel (
mathstuf
) .(Mesclado por Junio C Hamano -
gitster
- no commit e437cbd , 5 de outubro de 2015) :Antes do git 2.7, você tinha:
fonte
Para resumir, há pelo menos quatro maneiras:
(O seguinte foi tentado para o repositório oficial do Linux)
Menos informação:
e
Mais Informações:
Ainda mais informações:
fonte
git config --get remote.origin.url
recupera o URL original que foi definido comgit remote add ...
ougit remote set-url ...
enquantogit ls-remote --get-url origin
recupera o URL que é realmente usado para acessar o controle remoto - que pode ser diferente na presença degit config --global url.XXX.insteadOf YYY
. Portanto, ambas as saídas podem diferir! Observe também quegit ls-remote --get-url
(semorigin
) não é necessário recuperarorigin
, em vez disso, mostra o upstream rastreado, portanto falhará, por exemplo, no estado HEAD desanexado.Eu acho que você pode encontrar abaixo
.git/config
eremote["origin"]
se você não manipulou isso.fonte
Resposta curta:
ou, uma alternativa para scripts rápidos puros:
Algumas informações:
$ git remote -v
imprimirá todos os controles remotos (não o que você deseja). Você quer origem, certo?$ git remote show origin
muito melhor, mostra apenas,origin
mas leva muito tempo (testado na versão 1.8.1.msysgit.1 do git).Acabei com
$ git remote show -n origin
:, que parece ser o mais rápido. Com-n
ele não vai buscar cabeças remotas (ramos AKA). Você não precisa desse tipo de informação, certo?http://www.kernel.org/pub//software/scm/git/docs/git-remote.html
Você pode se inscrever
| grep -i fetch
nas três versões para mostrar apenas o URL de busca.Se você precisar de velocidade pura, use:
Obrigado a @Jefromi por apontar isso.
fonte
Para mim, esta é a maneira mais fácil (menos digitação):
na verdade, eu tenho isso em um
alias
chamados
que faz:Você pode adicionar ao seu perfil com:
alias s='git remote -v && git status'
fonte
Eu nunca consigo me lembrar de todos os parâmetros dos comandos do Git, então, bastai colocar um alias no
~/.gitconfig
arquivo que faça mais sentido para mim, para que eu possa lembrar, e resulta em menos digitação:Após recarregar o terminal, você pode digitar:
Aqui estão mais alguns dos meus mais usados:
Eu também recomendo o git-extras, que possui um
git info
comando que fornece informações muito mais detalhadas sobre as filiais remotas e locais.fonte
O URL do Git estará dentro do arquivo de configuração do Git. O valor corresponde à chave
url
.Para Mac e Linux, use os comandos abaixo:
Para Windows, abra o arquivo abaixo em qualquer editor de texto e encontre o valor da chave
url
.Nota: Isso funcionará mesmo se você estiver offline ou se o servidor git remoto tiver sido desativado.
fonte
git remote get-url origin >> fatal: No such remote 'origin'
,git config --get remote.origin.url >>
Eu basicamente uso:
Ele funciona no console de comando Git Bash ou no console de comando CMD no Windows. Dito isto, ele funciona com a versão 2.x do Git.
fonte
Este comando fornecerá todas as informações relacionadas ao seu repositório.
fonte
O controle remoto do upstream pode não ser chamado de "origem", então aqui está uma variação:
Ou:
Para variáveis mais úteis, há:
fonte
Para obter o endereço IP / nome do host de
origin
Para
ssh://
repositórios:Para
git://
repositórios:fonte
ssh
isso, só funciona na ausência de~/.ssh/config
qual reescreve o nome do host ou alias.Para complementar as outras respostas: Se o controle remoto foi alterado por algum motivo e, portanto, não reflete a origem original , a primeira entrada no reflog (ou seja, a última entrada exibida pelo comando
git reflog
) deve indicar onde o repositório foi originalmente clonado de.por exemplo
(Lembre-se de que o reflog pode ser eliminado, portanto não é garantido que funcione.)
fonte
Com
git remote show origin
você tem que estar no diretório de projetos. Mas se você quiser determinar os URLs de qualquer outro lugar, poderá usar:Se você precisar desse comando frequentemente, poderá definir um alias no seu
.bashrc
ou.bash_profile
com o MacOS.Então, você só precisa chamar
giturl
a pasta raiz do Git para simplesmente obter seu URL.Se você estender esse alias como este
você obtém apenas o URL simples sem o precedente
no
você tem mais possibilidades de uso:
Exemplo
No Mac, você pode ligar
open $(giturl)
para abrir o URL no navegador padrão.Ou
chrome $(giturl)
para abri-lo com o navegador Chrome no Linux.fonte
Uma maneira simples é abrir o
.git/config
arquivo:Editar:
vim .git/config
ounano .git/config
fonte
Imprima URLs de busca remota nomeados arbitrariamente:
fonte
Se você não souber o nome do controle remoto upstream para uma ramificação, poderá procurar isso primeiro, inspecionando o nome da ramificação upstream na qual a ramificação atual foi construída. Use
git rev-parse
assim:Isso mostra o ramo upstream que foi a fonte do ramo atual. Isso pode ser analisado para obter o nome remoto assim:
Agora pegue isso e canalize-o para
git ls-remote
obter a URL do controle remoto upstream que é a fonte da ramificação atual:Agora, note-se que isso não é necessariamente o mesmo que o repositório remoto de origem do qual foi clonado. Em muitos casos, porém, será suficiente.
fonte
Uso:
Resultado:
fonte
Eu prefiro este, pois é mais fácil lembrar:
Ele listará todas as informações úteis, como:
fonte
fácil, basta usar este comando onde você colocou a pasta .git
git config --get remote.origin.url
se você estiver conectado à rede
git remote show origin
mostrará a URL da qual um repositório Git local foi originalmente clonado.
espero que isso ajude
fonte