Kilka dni temu ściągnąłem projekt z GitHub. Od tamtej pory odkryłem, że na GitHub jest kilka rozwidleń i zaniedbałem, aby zauważyć, który z nich wybrałem pierwotnie. Jak mogę ustalić, które z widelców wyciągnąłem?
git
github
git-remote
Tim
źródło
źródło
git remote get-url origin
będzie to możliwe. Zobacz moją odpowiedź poniżejgit remote get-url origin
nie działa dla mnie - być może przestarzałe?git remote show origin
działało jednak.git remote -v
daje wiele informacji, w tym również.git remote get-url origin --push
działa dobrze, najwyraźniej nie deprecjonowane i zapewnia ładne krótkie informacje (git remote show origin
może być bardzo szczegółowe) qvgit help remote
.Odpowiedzi:
Jeśli chcesz tylko zdalny adres URL lub nie jesteś podłączony do sieci, która może uzyskać dostęp do zdalnego repozytorium:
Jeśli wymagają pełnej mocy i są w sieci, która może dotrzeć do zdalnego repo gdzie rezyduje pochodzenie:
Gdy używasz
git clone
(z GitHub lub dowolnego repozytorium źródłowego w tym zakresie) domyślną nazwą źródła klonu jest „origin”. Użyciegit remote show
spowoduje wyświetlenie informacji o tej zdalnej nazwie. Pierwsze kilka wierszy powinno zawierać:Jeśli chcesz użyć wartości w skrypcie, użyłbyś pierwszego polecenia wymienionego w tej odpowiedzi.
źródło
git remote show origin
(opcjonalnie z flagą -n dostarczoną przez @ Casey) lub zgit remote -v
sugestiami @Montaro i @rodel..gitconfig
plik go zawiera, ale nie widziałem go w swoim.´~/.gitconfig
jest globalny dla wszystkichgit
repozytoriów, tutaj pochodzi z lokalnej konfiguracji, która zwykle jest w.git/config
(jednak dla git-submodules odpowiedź jest nieco trudniejsza). Pamiętaj, żestrace git config --get remote.origin.url
to twój przyjaciel.Jeśli chcesz tego do celów skryptowych, możesz uzyskać tylko adres URL za pomocą
źródło
git remote show origin
pokazuje tylko „conq: repository nie istnieje”).url.<base>.insteadOf
. Zobacz moją odpowiedź - git ma w tym celu polecenie.Możesz spróbować:
Wydrukuje wszystkie adresy URL pobierania / wypychania wszystkich pilotów.
źródło
Aby uzyskać odpowiedź:
Jest to lepsze niż czytanie konfiguracji; zapoznaj się ze stroną
git-ls-remote
podręcznika dla :Jak wskazał @Jefromi, ta opcja została dodana w wersji 1.7.5 i udokumentowana dopiero w wersji 1.7.12.2 (2012-09).
źródło
origin
.remote get-url
opcji. To zamiennik drop-in.Dzięki Git 2.7 (wersja 5 stycznia 2015 r.) Masz bardziej spójne rozwiązanie, używając
git remote
:(ładny wisiorek
git remote set-url origin <newurl>
)Zobacz commit 96f78d3 (16 września 2015) autorstwa Ben Boeckel (
mathstuf
) .(Połączone przez Junio C Hamano -
gitster
- w commit e437cbd , 05 października 2015) :Przed Git 2.7 miałeś:
źródło
Podsumowując, istnieją co najmniej cztery sposoby:
(Poniższe wypróbowano dla oficjalnego repozytorium Linux)
Najmniej informacji:
i
Więcej informacji:
Jeszcze więcej informacji:
źródło
git config --get remote.origin.url
pobiera oryginalny adres URL ustawiony za pomocągit remote add ...
lubgit remote set-url ...
podczasgit ls-remote --get-url origin
pobierania adresu URL, który jest faktycznie używany do uzyskania dostępu do pilota - który może być inny w obecnościgit config --global url.XXX.insteadOf YYY
. Oba wyjścia mogą się różnić! Zauważ również, żegit ls-remote --get-url
(bezorigin
) nie musi koniecznie pobieraćorigin
, zamiast tego pokazuje śledzone w górę, więc zawiedzie na przykład w stanie odłączonej HEAD.Myślę, że możesz to znaleźć pod spodem
.git/config
iremote["origin"]
jeśli nie manipulowałeś tym.źródło
Krótka odpowiedź:
lub alternatywa dla czystych szybkich skryptów:
Niektóre informacje:
$ git remote -v
wydrukuje wszystkie piloty (nie to, czego chcesz). Chcesz pochodzenia, prawda?$ git remote show origin
znacznie lepiej, pokazuje tylko,origin
ale trwa zbyt długo (testowane na git w wersji 1.8.1.msysgit.1).Skończyło się na
$ git remote show -n origin
:, która wydaje się być najszybsza. Dzięki-n
niemu nie będzie można pobrać zdalnych głów (oddziałów AKA). Nie potrzebujesz tego rodzaju informacji, prawda?http://www.kernel.org/pub//software/scm/git/docs/git-remote.html
Możesz zastosować
| grep -i fetch
do wszystkich trzech wersji, aby wyświetlić tylko adres URL pobierania.Jeśli potrzebujesz czystej prędkości, użyj:
Dzięki @Jefromi za zwrócenie na to uwagi.
źródło
Dla mnie jest to łatwiejszy sposób (mniej pisania):
tak naprawdę mam to w
alias
nazwies
, która:Możesz dodać do swojego profilu za pomocą:
alias s='git remote -v && git status'
źródło
Nigdy nie pamiętam wszystkich parametrów poleceń Git, więc po prostu umieszczam w
~/.gitconfig
pliku alias , który jest dla mnie bardziej sensowny, więc mogę go zapamiętać i powoduje to mniej pisania:Po ponownym załadowaniu terminala możesz po prostu wpisać:
Oto kilka moich często używanych:
Bardzo polecam także git-extras, który ma
git info
polecenie, które zapewnia znacznie bardziej szczegółowe informacje o zdalnych i lokalnych oddziałach.źródło
Adres URL Git będzie znajdować się w pliku konfiguracyjnym Git. Wartość odpowiada kluczowi
url
.W przypadku komputerów Mac i Linux użyj poniższych poleceń:
W systemie Windows otwórz poniższy plik w dowolnym edytorze tekstu i znajdź wartość klucza
url
.Uwaga: Działa to nawet wtedy, gdy jesteś offline lub zdalny serwer git został usunięty.
źródło
git remote get-url origin >> fatal: No such remote 'origin'
,git config --get remote.origin.url >>
Zasadniczo używam:
Działa w konsoli poleceń Git Bash lub konsoli poleceń CMD w systemie Windows. To powiedziawszy, działa z wersją 2.x Git.
źródło
To polecenie poda wszystkie informacje związane z Twoim repozytorium.
źródło
Pilot nadrzędny może nie być nazywany „źródłem”, więc oto jego odmiana:
Lub:
Bardziej przydatne zmienne to:
źródło
Aby uzyskać adres IP / nazwę hosta
origin
W przypadku
ssh://
repozytoriów:W przypadku
git://
repozytoriów:źródło
ssh
tego działa tylko w przypadku braku~/.ssh/config
którego przepisuje nazwę hosta lub alias.W celu uzupełnienia innych odpowiedzi: Jeśli pilot z jakiegoś powodu został zmieniony, a więc nie odzwierciedla oryginalnego pochodzenia, pierwszy wpis w dzienniku reflog (tj. Ostatni wpis wyświetlany przez polecenie
git reflog
) powinien wskazywać, gdzie repo zostało pierwotnie sklonowane od.na przykład
(Pamiętaj, że dziennik może zostać wyczyszczony, więc nie gwarantuje to, że zadziała).
źródło
Ze
git remote show origin
trzeba być w katalogu projektów. Ale jeśli chcesz określić adresy URL z dowolnego miejsca, którego możesz użyć:Jeśli będziesz często potrzebować tego polecenia, możesz zdefiniować alias w swoim
.bashrc
lub.bash_profile
w systemie MacOS.Musisz tylko zadzwonić
giturl
do folderu głównego Git, aby po prostu uzyskać jego adres URL.Jeśli rozszerzysz ten alias w ten sposób
otrzymujesz tylko zwykły adres URL bez poprzedzającego
w
zyskujesz więcej możliwości w jego użyciu:
Przykład
Na komputerze Mac możesz zadzwonić,
open $(giturl)
aby otworzyć adres URL w standardowej przeglądarce.Lub
chrome $(giturl)
otwórz go za pomocą przeglądarki Chrome w systemie Linux.źródło
Prostym sposobem jest otwarcie
.git/config
pliku:Edytować:
vim .git/config
lubnano .git/config
źródło
Wydrukuj dowolnie nazwane adresy URL zdalnego pobierania:
źródło
Jeśli nie znasz nazwy zdalnego nadrzędnego odgałęzienia, możesz najpierw to sprawdzić, sprawdzając nazwę nadrzędnego odgałęzienia, na którym została zbudowana bieżąca gałąź. Użyj w
git rev-parse
ten sposób:To pokazuje, że gałąź nadrzędna była źródłem bieżącej gałęzi. Można to przeanalizować, aby uzyskać zdalną nazwę w następujący sposób:
Teraz weź to i potokuj do,
git ls-remote
a otrzymasz adres URL zdalnego sterownika, który jest źródłem bieżącej gałęzi:Teraz należy zauważyć, że niekoniecznie jest to to samo, co sklonowane zdalne repozytorium źródłowe. W wielu przypadkach to jednak wystarczy.
źródło
Stosowanie:
Wynik:
źródło
Wolę ten, ponieważ łatwiej jest zapamiętać:
Wyświetli wszystkie przydatne informacje, takie jak:
źródło
łatwe wystarczy użyć tego polecenia w folderze .git
git config --get remote.origin.url
jeśli masz połączenie z siecią
git remote show origin
pokaże ci adres URL, z którego zostało pierwotnie sklonowane lokalne repozytorium Git.
Mam nadzieję, że to pomoże
źródło