2 votes

Comment initialiser correctement un dépôt git distant ?

J'ai un serveur git local qui fonctionne sur mon NAS et je développe sur mon ordinateur portable et ma station de travail, tous dans mon réseau local. Donc, si je veux démarrer un projet dans un nouveau repo vide, je dois suivre les étapes suivantes cette réponse et

  1. créer un repo nu "mynewproject.git" sur le NAS cd ${PROJECT}.git; git init --bare
  2. créer un 'repo' vide "mynewproject", également sur le NAS cd ${PROJECT}; git init
  3. faire un commit initial dans "nouveau projet". git add . ; git commit -m "initial commit" -a
  4. faire du repo nu l'origine distante du dossier actuel git remote add origin ssh://${USER}@${REMOTEIP}${PROJECT}.git
  5. pousser vers le maître git push origin master
  6. supprimer le répertoire 'project'. rm -rf $PROJECT

Et ensuite je peux cloner le ${PROJECT}.git depuis d'autres machines. Tout ce processus semble excessivement compliqué. Je veux dire, je l'ai scripté,

HOSTIP=XXX.XXX.XXX.XXX
USER=YYYYY
PROJECT=$1

[[ -z "${PROJECT}" ]] && exit 1

PROJECTNAME=${PROJECT}
PROJECT=$(pwd)/${PROJECT}

# create project and .git folders
mkdir ${PROJECT}
mkdir ${PROJECT}.git

# initialize folders for git
cd ${PROJECT}.git
git init --bare
cd ${PROJECT}
git init

# create initial project directory
echo "#!/bin/bash" > ${PROJECT}/ENV_${PROJECTNAME}.sh
git add .
git commit -m "initial commit" -a

# 'link' to 'remote' .git folder 
git remote add origin ssh://${USER}@${HOSTIP}${PROJECT}.git

# push to master
git push origin master

# delete 'project' directory
rm -rf $PROJECT

echo "CREATED PROJECT $PROJECT.git"
echo "Clone with git clone ssh://${USER}@${HOSTIP}${PROJECT}"

exit 0

mais quand même, est-ce la bonne façon de procéder ?

4voto

phd Points 20065

Votre processus est généralement bon mais un peu trop compliqué. Vous n'avez pas besoin d'un référentiel non nu sur le NAS, donc votre flux de travail devrait être

  1. Créer un repo nu sur le NAS : cd ${PROJECT}.git; git init --bare .
  2. Clonez le ${PROJECT}.git sur une autre machine. Cela ajoute le distant au repo non dénudé.
  3. Au lieu de cloner, vous pouvez créer un dépôt vide non nu sur l'autre machine et y ajouter un dépôt distant : cd ${PROJECT}; git init; git remote add origin ssh://${USER}@${HOSTIP}${PROJECT}.git .
  4. Faites un commit initial dans le repo cloné non nu sur l'autre machine : git add . ; git commit -m "initial commit" -a .
  5. Pousser le master de l'autre machine vers le repo nu sur le NAS : git push origin master .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X