Wie pusht man ein lokales Git-Repository auf einen anderen Computer?

Lesezeit: 4 Minuten

Wie pusht man ein lokales Git Repository auf einen anderen Computer
Nubel

Ich habe ein lokales Git-Repository auf meinem Laptop eingerichtet. Ich würde es gerne auf meinen Desktop schieben.

Wie kann ich das machen?

  • git sollte in superusers.com sein

    – Wodkhang

    22. Mai 2010 um 12:18 Uhr

  • Hast du die Manpage gelesen? getippt git help push?

    – Verrückter Schotte

    22. Mai 2010 um 12:28 Uhr

  • @vodkhang: Nein, es sollte nicht auf Superuser sein. Es ist ein wichtiger Bestandteil einer Entwickler-Toolbox und ihrer Programmierumgebung.

    – VonC

    22. Mai 2010 um 12:47 Uhr


  • ähm, das kann stimmen. Ich dachte nur, weil es sich um Verwaltungskram handelt, also sollte es auf dieser Seite stehen 🙂

    – Wodkhang

    22. Mai 2010 um 13:00 Uhr

  • @vodkhang Ich habe auch einige Fragen zum Git-Setup auf serverfault.com gestellt, aber ich denke, die echten Git-Benutzer mit den besten Git-Kenntnissen sind hier.

    – nimmthin

    22. Mai 2010 um 20:56 Uhr

Wie pusht man ein lokales Git Repository auf einen anderen Computer
VonC

Wenn Sie Zugriff auf ein freigegebenes Verzeichnis haben, können Sie (siehe git clone und git remote):

git clone --bare /path/to/your/laptop/repo /shared/path/to/desktop/repo.git
git remote add desktop  /shared/path/to/desktop/repo.git

Dadurch wird ein Bare-Repo erstellt, auf das in Ihrem lokalen Repo als “Desktop” verwiesen wird.
Da es leer ist, können Sie darauf drücken (und bei Bedarf auch davon ziehen)

git push desktop

Als die ProGit-Bucherwähnungengit unterstützt das Dateiprotokoll:

Das grundlegendste ist die Lokal Protokoll, bei dem sich das Remote-Repository in einem anderen Verzeichnis auf der Festplatte befindet.
Dies wird häufig verwendet, wenn jeder in Ihrem Team Zugriff auf ein gemeinsam genutztes Dateisystem wie einen NFS-Mount hat, oder in dem unwahrscheinlicheren Fall, dass sich alle am selben Computer anmelden.

  • git push desktop bedeutet schieben from Laptop to Schreibtisch. EIN bare repo wird dafür definitiv nicht benötigt.

    –Timo

    15. November 2017 um 10:23 Uhr

  • @Timo Ja, seit 2015 ist ein Non-Bare-Repo möglich: stackoverflow.com/a/30030236/6309

    – VonC

    15. November 2017 um 10:27 Uhr

  • Was ist, wenn ich keinen Zugriff auf ein freigegebenes Verzeichnis habe? Ich würde gerne sowas machen git clone . ssh://user@desktop:git/remoteRepo.git (aus meinem lokalen Repo). Oder geht das nur, indem ich mich bei meinem Desktop anmelde und dort ein (bares) Repo erstelle?

    – AstroFloyd

    14. Dezember 2018 um 14:45 Uhr

  • @AstroFloyd 8+ Jahre später können Sie SSH verwenden, wenn man bedenkt, dass Windows 10 mit einem OpenSSH-Server geliefert wird (bleepingcomputer.com/news/microsoft/…, bleepingcomputer.com/news/microsoft/…)

    – VonC

    14. Dezember 2018 um 14:52 Uhr

  • @VonC Windows ist hier nicht erforderlich; OpenSSH gibt es schon seit Ewigkeiten unter Linux. aber git clone . ssh://user@desktop:git/remoteRepo.git erstellt ein lokales Repo in einem Unterverzeichnis namens ssh:/user@desktop:git/remoteRepo.git, wohingegen ich gerne ein Fernbedienung repo – das ist der springende Punkt. Wie verbinde ich mich also über ssh mit dem Remote-Computer, anstatt ein Verzeichnis namens ssh zu erstellen?

    – AstroFloyd

    14. Dezember 2018 um 16:07 Uhr

Wie pusht man ein lokales Git Repository auf einen anderen Computer
kubi

Hier ist ein Skript, das ich geschrieben habe, um genau das zu tun. Das Skript verarbeitet alle meine üblichen Initialisierungen neuer Git-Repos

  1. erstellt eine .gitignore-Datei
  2. initialisiert .git
  3. erstellt das Bare-Git-Repo auf dem Server
  4. Richtet das lokale Git-Repo ein, um es an dieses Remote-Repo zu pushen

http://gist.github.com/410050

Sie müssen es auf jeden Fall an Ihr Setup anpassen, insbesondere wenn Sie mit einem Windows-Laptop / -Desktop arbeiten.

Hier ist das vollständige Skript:

#!/bin/bash
# Create Git Repository
# created by Jim Kubicek, 2009
# [email protected]
# http://jimkubicek.com

# DESCRIPTION
# Create remote git repository from existing project
# this script needs to be run from within the project directory

# This script has been created on OS X, so YMMV

#######
# Parameters
REPLOGIN=#Login name
REPADDRESS=#Repo address
REPLOCATION=/Users/Shared/Development #Repo location

# The repo name defaults to the name of the current directory.
# This regex will accept foldernames with letters and a period.
# You'll have to edit it if you've got anything else in your folder names.
REPNAME=`pwd | egrep -o "/[a-zA-Z]+$" | egrep -o "[a-zA-Z\.]+"`


# If you have standard files/directories to be ignored
# add them here
echo "Creating .gitignore"
echo 'build/' >> .gitignore # The build directory should be ignored for Xcode projs
echo '.DS_Store' >> .gitignore # A good idea on OS X

# Create the git repo
echo "Initializing the repo"
git init
git add .
git commit -m "Initial commit"

# Copy the repo to the server
echo "Copying the git repo to the server $REPADDRESS"
TEMPREP="$REPNAME.git"
git clone --bare .git $TEMPREP
scp -r $TEMPREP $REPLOGIN@$REPADDRESS:$REPLOCATION/
rm -rf $TEMPREP

# Set up the origin for the project
echo "Linking current repository to remote repository"
git remote add origin $REPLOGIN@$REPADDRESS:$REPLOCATION/$REPNAME.git/

  • Ich würde empfehlen, Ihr Skript vollständig in Ihre Antwort zu kopieren (da es nicht zu groß ist). Sobald Stack Overflow den nächsten CC-Wiki-Dump (blog.stackoverflow.com/2009/06/…) veröffentlicht, sind Sie sicher, dass dieses Skript dies tun wird immer verfügbar sein. Ansonsten +1

    – VonC

    22. Mai 2010 um 12:59 Uhr


Der einfachste (nicht der beste) Weg ist, das Repository-Verzeichnis über LAN freizugeben und Gits zu verwenden file:// Protokoll (vgl man git).

Für mich ist die Verwendung der beste Weg gitolite (sehen Gitolith docs für detaillierte Anweisungen).

900050cookie-checkWie pusht man ein lokales Git-Repository auf einen anderen Computer?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy