git remote
SVN używa jednego scentralizowanego repozytorium, aby służyć jako centrum komunikacyjne dla programistów, a współpraca odbywa się poprzez przekazywanie zestawów zmian między kopiami roboczymi programistów a centralnym repozytorium. Z kolei model współpracy Git przydziela każdemu programiście własną kopię repozytorium, wraz z własną lokalną historią i strukturą gałęzi. Użytkownicy zazwyczaj muszą udostępniać serię commitów zamiast pojedynczego zestawu zmian. Zamiast commita zestawu zmian z kopii roboczej do centralnego repozytorium Git umożliwia udostępnianie całych gałęzi między repozytoriami.
Polecenie git remote
jest jednym z elementów szerszego systemu, który odpowiada za synchronizację zmian. Rekordy zarejestrowane za pomocą polecenia git remote
są używane w połączeniu z poleceniami git fetch, git push i git pull. Wszystkie te polecenia służą do wykonywania zadań związanych z synchronizacją, z opisem których można się zapoznać, klikając odpowiednie łącza.
git remote
Polecenie git remote
umożliwia tworzenie, przeglądanie i usuwanie połączeń z innymi repozytoriami. Połączenia zdalne przypominają bardziej zakładki niż bezpośrednie łącza do innych repozytoriów. Zamiast zapewniać dostęp w czasie rzeczywistym do innego repozytorium, służą jako wygodne nazwy, których można użyć, aby odwołać się do niezbyt wygodnego adresu URL.
Na przykład poniższy diagram pokazuje dwa zdalne połączenia z repozytorium do centralnego repozytorium i repozytorium innego programisty. Zamiast odwoływać się do nich za pomocą pełnych adresów URL, możesz przekazać skróty origin i john do innych poleceń Git.
materiały pokrewne
Zaawansowany dziennik Git
POZNAJ ROZWIĄZANIE
Poznaj środowisko Git z rozwiązaniem Bitbucket Cloud
Używanie polecenia git remote
Polecenie git remote
jest zasadniczo interfejsem do zarządzania listą zdalnych wpisów przechowywanych w pliku ./.git/config
repozytorium. Opisane poniżej polecenia służą do wyświetlania bieżącego stanu listy zdalnej.
Wyświetlanie konfiguracji git remote
git remote
Wyświetla listę zdalnych połączeń z innymi repozytoriami.
git remote -v
Działa jak powyższe polecenie, ale zawiera adres URL każdego połączenia.
Tworzenie i modyfikowanie konfiguracji git remote
Polecenie git remote
jest również wygodną lub „pomocniczą” metodą modyfikowania pliku ./.git/config
repozytorium. Polecenia przedstawione poniżej umożliwiają zarządzanie połączeniami z innymi repozytoriami. Następujące polecenia zmodyfikują plik /.git/config
repozytorium. To samo można również osiągnąć poprzez bezpośrednią edycję pliku ./.git/config
w edytorze tekstu.
git remote add <name> <url>
Tworzy nowe połączenie ze zdalnym repozytorium. Po dodaniu zdalnej lokalizacji będzie można użyć zmiennej
jako wygodnego skrótu do zmiennej
w innych poleceniach Git.
git remote rm <name>
Usuwa połączenie ze zdalnym repozytorium
.
git remote rename <old-name> <new-name>
Zmienia nazwę połączenia zdalnego ze <stara-nazwa>
na <nowa-nazwa>
.
Git remote — omówienie
Rozwiązanie Git zostało zaprojektowane, aby dać każdemu programiście całkowicie odizolowane środowisko programistyczne. Oznacza to, że informacje nie są automatycznie przekazywane między repozytoriami. Zamiast tego programiści muszą ręcznie pobierać commity z gałęzi nadrzędnych do swojego lokalnego repozytorium lub ręcznie wypychać lokalne commity z powrotem do centralnego repozytorium. Polecenie git remote
jest po prostu łatwiejszym sposobem przekazywania adresów URL do tych poleceń udostępniania.
Zdalne połączenie origin
Kiedy klonujesz repozytorium za pomocą polecenia git clone
, automatycznie tworzy ono zdalne połączenie o nazwie origin, które wskazuje klonowane repozytorium. To przydatna funkcja dla programistów tworzących lokalną kopię centralnego repozytorium, ponieważ zapewnia łatwy sposób na ściąganie kodu zmian w gałęziach nadrzędnych lub publikowanie lokalnych commitów. Dlatego też w większości projektów opartych na Git centralne repozytorium nazywa się „origin”.
Adresy URL repozytoriów
Git obsługuje wiele sposobów odwoływania się do zdalnego repozytorium. Dwa najprostsze metody dostępu do zdalnego repozytorium to protokół HTTP i SSH. HTTP pozwala łatwo przyznać anonimowy dostęp tylko do odczytu do repozytorium. Przykład:
http://host/path/to/repo.git
Generalnie nie można jednak wypychać commitów pod adres HTTP (poza tym kto by chciał pozwolić na anonimowe wypychanie). Aby uzyskać dostęp do odczytu i zapisu, należy więc zamiast tego użyć protokołu SSH:
ssh://user@host/path/to/repo.git
Potrzebne będzie ważne konto SSH na komputerze hosta, ale Git obsługuje też uwierzytelniony dostęp przez SSH. Odpowiednie adresy URL można znaleźć w nowoczesnych i bezpiecznych rozwiązaniach hostingowych, takich jak Bitbucket.com.
Polecenia git remote
Polecenie git remote
jest jednym z wielu poleceń Git, które pobiera dodatkowe „podpolecenia”. Poniżej znajduje się omówienie powszechnie używanych podpoleceń git remote
.
ADD <NAME> <URL>
Dodaje do pliku ./.git/config
rekord dla połączenia zdalnego o nazwie <nazwa>
pod adresem URL <adres-url>
.
Akceptuje opcję -f
, która wykona polecenie git fetch
natychmiast po utworzeniu rekordu zdalnego.
Akceptuje opcję --tags
, która natychmiast wykona polecenie git fetch
i zaimportuje każdy tag z repozytorium zdalnego.
RENAME <OLD> <NEW>
Aktualizuje plik ./.git/config
, aby zmienić nazwę rekordu <STARY>
na <NOWY>
. Wszystkie gałęzie zdalnego śledzenia i ustawienia konfiguracji zdalnego połączenia są aktualizowane.
REMOVE or RM <NAME>
Modyfikuje plik ./.git/config
i usuwa połączenie zdalne o nazwie <NAZWA>
. Wszystkie gałęzie zdalnego śledzenia i ustawienia konfiguracji połączenia zdalnego są usuwane.
GET-URL <NAME>
Wyświetla listę adresów URL dla rekordu zdalnej lokalizacji.
Akceptuje opcję --push
, odpytywane są adresy URL wypychania, a nie pobierania.
Opcja --all
powoduje wyświetlenie listy wszystkich adresów URL połączeń zdalnych.
SHOW <NAME>
Wyświetla dane wyjściowe wysokiego poziomu dotyczące połączenia zdalnego <NAZWA>
.
PRUNE <NAME>
Usuwa wszystkie lokalne gałęzie dla połączenia <NAZWA>
, które nie istnieją w repozytorium zdalnym.
Akceptuje opcję --dry-run
, która wyświetli listę gałęzi do przycięcia, ale nie wykona tej operacji.
Git remote — przykłady
Oprócz lokalizacji źródłowej często wygodnie jest mieć połączenie z repozytoriami kolegów z zespołu. Jeśli nasz współpracownik, na przykład John, utrzymywał publicznie dostępne repozytorium w lokalizacji dev.example.com/john.git
, można dodać do niego połączenie w następujący sposób:
git remote add john http://dev.example.com/john.git
Posiadanie tego rodzaju dostępu do repozytoriów poszczególnych programistów umożliwia współpracę poza centralnym repozytorium. Może to być bardzo przydatne w małych zespołach pracujących nad dużym projektem.
Wyświetlanie połączeń zdalnych
Domyślnie polecenie git remote
spowoduje wyświetlenie listy wcześniej zapisanych połączeń zdalnych z innymi repozytoriami. Spowoduje to wygenerowanie danych wyjściowych w pojedynczym wierszu, który zawiera „zakładki” z nazwami repozytoriów zdalnych.
$ git remote
origin
upstream
other_users_repo
Wywołanie polecenia git remote
z opcją -v
spowoduje wyświetlenie listy nazw repozytoriów dodanych do zakładek oraz powiązanych z nimi adresów URL. Opcja -v
oznacza tryb szczegółowy (ang. verbose). Poniżej znajduje się przykład szczegółowych danych wyjściowych polecenia git remote
.
git remote -v
origin git@bitbucket.com:origin_user/reponame.git (fetch)
origin git@bitbucket.com:origin_user/reponame.git (push)
upstream https://bitbucket.com/upstream_user/reponame.git (fetch)
upstream https://bitbucket.com/upstream_user/reponame.git (push)
other_users_repo https://bitbucket.com/other_users_repo/reponame (fetch)
other_users_repo https://bitbucket.com/other_users_repo/reponame (push)
Dodawanie repozytoriów zdalnych
Polecenie git remote add
spowoduje utworzenie nowego rekordu połączenia z repozytorium zdalnym. Po dodaniu zdalnej lokalizacji, będzie można użyć zmiennej ./.git/config
. Przykład aktualizacji pliku konfiguracyjnego:
$ git remote add fake_test https://bitbucket.com/upstream_user/reponame.git; [remote "remote_test"]
url = https://bitbucket.com/upstream_user/reponame.git
fetch = +refs/heads/*:refs/remotes/remote_test/*
Sprawdzanie połączenia zdalnego
Podpolecenie show można dołączyć do polecenia git remote
, aby uzyskać szczegółowe informacje dotyczące konfiguracji połączenia zdalnego. Informacje będą zawierać listę gałęzi powiązanych z lokalizacją zdalną, a także dołączone punkty końcowe do ściągania i wypychania.
git remote show upstream
* remote upstream
Fetch URL: https://bitbucket.com/upstream_user/reponame.git
Push URL: https://bitbucket.com/upstream_user/reponame.git
HEAD branch: main
Remote branches:
main tracked
simd-deprecated tracked
tutorial tracked
Local ref configured for 'git push':
main pushes to main (fast-forwardable)
Operacje ściągania i wypychania do zdalnych lokalizacji Git
Po skonfigurowaniu rekordu lokalizacji zdalnej za pomocą polecenia git remote
nazwę lokalizacji zdalnej można przekazywać jako argument do innych poleceń Git w celu komunikacji ze zdalnym repozytorium. Zarówno poleceń git fetch, jak i git pull można używać do odczytu z repozytorium zdalnego. Oba polecenia mają różne działanie, które szczegółowo wyjaśniono na odpowiednich stronach.
Wypychanie do zdalnych lokalizacji Git
Polecenie git push
służy do zapisywania w repozytorium zdalnym.
git push <remote-name> <branch-name>
W tym przykładzie stan lokalny gałęzi
zostanie przesłany do repozytorium zdalnego o nazwie
.
Usuwanie repozytoriów zdalnych i zmienianie ich nazw
git remote rename <old-name> <new-name>
Polecenie git remote rename
nie wymaga specjalnych wyjaśnień. Jego wykonanie spowoduje zmianę nazwy połączenia zdalnego z
na
. Zmiana ta zostanie też uwzględniona w pliku ./.git/config
.
git remote rm <name>
Polecenie git remote rm
usunie połączenie ze zdalnym repozytorium o nazwie <nazwa>
. Aby to zilustrować, „cofnijmy” dodanie lokalizacji zdalnej z naszego ostatniego przykładu. Jeśli wykonamy polecenie git remote rm zdalny_test
, a następnie zbadamy zawartość pliku ./.git/config
możemy zobaczyć, że rekord [remote "zdalny_test"]
już nie istnieje.
Udostępnij ten artykuł
Następny temat
Zalecane lektury
Dodaj te zasoby do zakładek, aby dowiedzieć się więcej na temat rodzajów zespołów DevOps lub otrzymywać aktualności na temat metodyki DevOps w Atlassian.