J'ai créé un référentiel Git sur mon ordinateur de bureau (Windows 7) avec:
git init
git add <all my files>
git commit -m "added my files"
Maintenant, j'ai installé un nouveau serveur Ubuntu 10.10 sur une machine de mon réseau local et OpenSSH. Mon répertoire personnel est /home/jonas
et j'ai créé un répertoire ~/code/
pour contenir mes projets. Je peux me connecter au serveur Ubuntu à partir de Windows 7 avec PuTTY.
J'ai installé Git sur le serveur avec Sudo apt-get install git
Maintenant, je veux ajouter mon référentiel Git sur mon bureau au serveur. J'ai essayé de suivre les instructions de Pragmatic Version Control en utilisant Git.
Depuis mon bureau, j'exécute ces commandes:
git remote add Origin [email protected]/home/jonas/code/myproject.git
git Push Origin master
Mais j'ai eu ce message d'erreur:
fatal: '[email protected]/home/jonas/code/myproject.git' does not appear to be
a git repository
fatal: The remote end hung up unexpectedly
Quel est le problème? Comment créer le référentiel distant?
Comme suggéré par PerfectlyNormal, j'ai ajouté un :
dans l'adresse. Maintenant, cela fonctionnait mieux et je devais taper mon mot de passe sur le serveur, mais j'ai reçu un message d'erreur similaire:
fatal: '/home/jonas/code/myproject.git' does not appear to be a git repository
fatal: The remote end hung up unexpectedly
Dois-je initialiser un référentiel Git sur le serveur avant de pouvoir git Push
?
Avez-vous configuré le référentiel sur le serveur distant? Vous devez courir
mkdir -p /home/jonas/code/myproject.git
cd /home/jonas/code/myproject.git
git init --bare
sur le serveur afin de le configurer. Je recommande de regarder comment installer un serveur git dans le livre free ProGit .
git remote add Origin [email protected]/home/jonas/code/myproject.git
Lors de l'utilisation de SSH, les adresses de référentiel distant peuvent être exprimées de deux manières. L'une utilisant des chemins absolus et l'autre des chemins relatifs du répertoire de base des utilisateurs. Vous les avez mélangés.
La commande corrigée serait l'une des suivantes.
git remote add Origin [email protected]:code/myproject.git
git remote add Origin ssh://[email protected]/home/jonas/code/myproject.git
La première chose que je remarque est que vous manquez un ':'. Devrait être git remote add Origin [email protected]:/home/jonas/code/myproject.git
Je crée normalement un référentiel nu localement, puis scp ce référentiel sur le serveur lorsque je configure un référentiel distant.
Par exemple,
cd c:\gits
git clone --bare c:\path\to\local\repository\some_project
ce qui crée some_project.git.
Ensuite,
scp -r some_project.git [email protected]:/path/to/remote/gits/.
entrez votre mot de passe ou peut-être avez-vous déjà un accès par clé publique/privée.
vous avez besoin d'un colon:
git remote add Origin [email protected]/home/jonas/code/myproject.git
devrait être:
git remote add Origin [email protected]:/home/jonas/code/myproject.git
Jetez un coup d’œil à le script pratique git-create.bash
de Eike Kettner . Donnez-lui votre adresse distante préférée ([email protected]:code/myproject.git
) et il entrera automatiquement en SSH pour créer le répertoire et initialiser un référentiel --bare
vide pour vous. Tout ce que vous avez à faire est d’ajouter les git remote
et git Push
.
git-create.bash
: Créer un nouveau référentiel git distant vide via ssh
Usage:
git-create.bash '[email protected]:code/myproject.git'
git remote add Origin '[email protected]:code/myproject.git'
git Push -u Origin master
Connecter votre dépôt local. sur le serveur distant Git Ubuntu
Créez un utilisateur sur le serveur distant et attribuez une autorisation d'accès ssh à l'aide de
ssh-keygen
dans votre serveur local et collez son fichier.pub
dans ssh de la télécommande serveur.
Que faire sur un serveur distant
Serveur: XX.XXX.1XX.XX
Dans la ligne de commande de PuTTY
Allez à l'emplacement: cd ~/srv/git
srv dans votre répertoire racine
Créez un dossier: mkdir votre_nom_fichier suivi de cd dans votre fichier dans votre dossier git
initialiser git ici: git init --bare
Done
Choses à faire sur la machine locale
créez votre référentiel ..
initialisation de Git: git init
Créez la connexion à distance: git remote add Origin [email protected]:/srv/git/your_file_name
git Push.
Done
_ {Si vous êtes bloqué par un point, consultez: https://git-scm.com/book/en/v2/Git-on-the-Server-Setting-Up-the-Server .