2012-08-16 3 views
0

J'essaie de configurer un dépôt GIT sur un serveur web distant et de le connecter à un projet sur mon Eclipse mais j'ai eu des problèmes en le faisant. J'ai fait mes devoirs et essayé tout ce que je pouvais et suis actuellement dans une impasse.Egit pour le développement web

Référentiel créé sur le serveur distant. Référentiel créé sur l'ordinateur local. Projet créé connecté au référentiel informatique local. J'ai essayé toutes les méthodes pour connecter les deux référentiels. Impossible.

Oui, c'était l'une des méthodes que j'ai essayées.
J'ai créé un repo git sur mon serveur distant.
Puis j'ai importé un projet et donné des informations à mon serveur pour me connecter au repo.
J'ai pu me connecter et j'ai donné au projet tous les fichiers de mon serveur.
J'ai apporté une modification au fichier et suis ensuite passé à 'team> stage> commit> push'.
J'ai eu cette erreur « à distance: erreur: refus de mise à jour vérifié branche: refs/heads/maître

remote: error: By default, updating the current branch in a non-bare repository 
remote: error: is denied, because it will make the index and work tree inconsistent 
remote: error: with what you pushed, and will require 'git reset --hard' to match 
remote: error: the work tree to HEAD. 
remote: error: 
remote: error: You can set 'receive.denyCurrentBranch' configuration variable to 
remote: error: 'ignore' or 'warn' in the remote repository to allow pushing into 
remote: error: its current branch; however, this is not recommended unless you 
remote: error: arranged to update its work tree to match what you pushed in some 
remote: error: other way. 
remote: error: 
remote: error: To squelch this message and still keep the default behaviour, set 
remote: error: 'receive.denyCurrentBranch' configuration variable to 'refuse'. 
To ssh://[email protected]/var/www/html/lms 
! [remote rejected] master -> master (branch is currently checked out) 
error: failed to push some refs to 'ssh://[email protected]/var/www/html/lms' 

Eh bien, après environ 8 heures je suis allé en rage totale nerd et fracassé mon clavier contre le mur. Quelle belle façon d'être introduit dans un outil de contrôle de version populaire.

This illustre parfaitement ma frustration. Au diable avec Git. Bonjour subversion, tu m'as manqué.

+1

Ce serait génial si vous pouviez poster quelques captures d'écran et plus de détails sur ce que vous essayez de faire. Avez-vous une configuration de dépôt git? Si oui, essayez-vous de vous connecter à Eclipse? –

+0

Oui J'essaie de me connecter à un répertoire sur mon serveur avec eclipse et j'ai ce répertoire sous contrôle de version GIT en utilisant le plugin EGIT pour Eclipse. J'ai fait une modification à mon message pour répondre à votre dernière question. –

+0

Lecture [this] (http: // stackoverflow.com/questions/2816369/git-push-error-distant-rejeté-master-master-branche-is-currently-checked-checked), il semble que votre problème est que votre dépôt distant n'est pas vide. Avez-vous déjà lu ceci? Lisez ceci pour plus de détails sur les dépôts nus: http://git-scm.com/book/en/Git-on-the-Server-Setting-Up-the-Server – greg0ire

Répondre

1

Je pense que vous avez créé les dépôts sur le serveur comme non-nu, ce qui est la raison pour laquelle vous ne pouvez pas pousser à la même branche qui est vérifiée.

Vérifiez votre référentiel sur le serveur:

$ ls 
repository 

Maintenant, soit:

$ ls -a repository 
.git 
file1 
file2 
.. 

ou:

$ ls -a repository 
HEAD 
config 
description 
hooks 
info 
objects 
packed-refs 
refs 

Si vous obtenez le premier résultat que vous avez un référentiel non-nu . Cloner sur le serveur comme nu:

$ ls 
repository 
$ git clone --bare repository repository.git 
$ mv repository oldrepository 

Ensuite, essayez de pousser à elle. L'extension .git est une convention qui indique un référentiel nu, elle n'est pas nécessaire pour les URL de référentiel. Cela signifie que vos référentiels git locaux doivent fonctionner avec leur ancienne configuration à distance.

+0

Si je crée un référentiel nu sur le serveur et un travail respiratoire sur éclipse alors ... Je ne peux pas pousser du référentiel de travail sur Eclipse vers le référentiel nu sur le serveur. –

+0

@sofiane: Votre utilisateur ssh 'sofiane' a-t-il les permissions d'écriture pour le référentiel? Nous avons déjà exécuté 'git init' en tant que root, ce qui a rendu le référentiel en lecture seule pour l'utilisateur ssh. Si c'est le cas, utilisez chown pour changer la propriété en 'sofiane', ou chmod pour que le référentiel soit accessible à tous. – Ozan

0

Que voyez-vous dans la vue Référentiels GIT? Si vous pouvez pouvez voir votre GIT il alors vous devriez être en mesure de faire une File -> Import... -> Projects from Git comme ceci:

enter image description here

+0

J'ai fait une modification à mon poste pour vous mettre à jour. –

+0

Je n'ai jamais passé une journée entière à essayer de comprendre le flux de travail avant. Peut-être que Git était une idée stupide depuis le début. Je retourne à la tortue SVN c'est fou. Perdu mon temps. –

+0

@SofianeMerah Avant d'utiliser egit, vous devriez probablement utiliser git dans CLI, juste pour savoir ce que vous faites. C'est beaucoup supérieur à SVN, même avec la tortue. Lorsque vous êtes confortable, vous pouvez utiliser egit si vous voulez vraiment une interface graphique. – greg0ire

Questions connexes