Ich habe ein lokales Git-Repository auf meinem Laptop eingerichtet. Ich würde es gerne auf meinen Desktop schieben.
Wie kann ich das machen?
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?
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
kubi
Hier ist ein Skript, das ich geschrieben habe, um genau das zu tun. Das Skript verarbeitet alle meine üblichen Initialisierungen neuer Git-Repos
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).
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