Git Donner “lecture de la première” erreur lors de la tentative de pousser
Je vais faire ma première introduction à git via une classe, je suis prenant. J'ai un certain nombre de fichiers dans un répertoire sur mon ordinateur et je suis capable de mettre en scène et de s'engager sans problème. Cependant, lorsque j'essaie de repousser les fichiers de mon dépôt github, j'obtiens toujours ce message:
Pushing to https://github.com/BigMeanCat/CMDA
To https://github.com/BigMeanCat/CMDA
! [rejected] master -> master (fetch first)
error: failed to push some refs to 'https://github.com/BigMeanCat/CMDA'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
Quelqu'un peut-il m'aider avec ce que cela signifie et comment le résoudre? J'ai vu quelques personnes avec des problèmes similaires en ligne, mais je suis tout NOUVEAU à git et ne sont pas assez familiers avec git en ligne de commande de la langue encore. Je suis un peu hésitant à prendre un certain nombre de suggestions, que je ne sais pas si ça va régler le problème ou de le faire pire.
Merci!
- La solution est dans le message d'erreur lui-même
- Il y a une certaine différence sur le master sur github et vous devez d'abord chercher; donc il suffit de faire une
git fetch
d'abord, puis faire lagit push origin master
- Juste un git fetch ne suffira pas, il a également à fusionner/rebase les modifications.
- Avez-vous d'exécuter
git commit --amend
après avoir poussé? Cela peut expliquer le "problème". - Aussi, il est difficile de savoir si vous êtes la seule personne qui utilise le dépôt distant résidant à
https://github.com/BigMeanCat/CMDA
ou pas. Faire d'autres élèves de votre classe, de l'utiliser trop ou êtes-vous le seul? - Jubobs: je travaille avec une équipe d'autres étudiants, mais je n'ai pas donné accès à mon référentiel encore. Et non, je n'ai pas exécuter git commit ou toutes les autres commandes. Le message d'erreur dit "de la télécommande contient des travaux que vous n'avez pas localement." Est-ce à dire que tous les fichiers existants dans mon remote repository sur github doit également exister dans le dossier local que je suis en train de les pousser à partir? Je demande car nous avons créé un fichier README dans la classe qui n'est pas dans mon répertoire local.
- J'ai enfin compris ce qui n'allait pas. Depuis que j'ai été à l'origine avoir quelques problèmes avec l'installation de git gui pour Ubuntu, j'avais essayé de prendre un raccourci avec deux affectations à l'aide de "Créer un nouveau fichier ici" et copier le code directement dans le nouveau fichier dans mon dépôt github. Évidemment, il n'aimait pas cela et ne me laisse pas tirer sur la première, j'ai donc supprimé les deux fichiers, et à gauche le fichier README et a été en mesure de tirer de ce fichier. Après cela, je pourrais pousser tout ce dont j'avais besoin. Toujours en essayant de puzzle pourquoi il n'a pas, comme dans les deux codée en dur dans les fichiers, mais merci pour votre aide, tout le monde!
Vous devez vous connecter pour publier un commentaire.
Quelqu'un d'autre (ou sur une autre machine) a poussé un ensemble de modifications vers le dépôt distant. Vous, sur votre ordinateur local n'avez pas ces changements. Donc pour résoudre la situation, vous devez d'abord
et puis
Toutefois, vous ne serez pas en mesure de
git pull
alors que vous avez des modifications dans votre arbre de travail, alors avant de vous tirer/pousser, vous devez d'abordcommit
oustash
vos changements locaux. Ce, potentiellement, pourrait amener une fusion de la situation à distance si des changements se chevauchent avec vos locaux.J'ai été pris même erreur, alors j'ai résolu ce sujet avec "--force" de la commande. Brièvement, écrire cette commande;
À l'Attention de: Probablement, vous avez essayé de faire pousser vos codes, encore et encore avant , c'est pourquoi vous avez pris cette erreur.Ma solution écraser violemment avec votre ensemble de modifications. Par cette méthode, votre dépôt peut cause d'incompatibilité d'autres personnes. Mais Si vous travaillez seul (pas comme un groupe de travail), de sorte que vous pouvez facilement utiliser "--force" comme je l'ai mentionné ci-dessus.
git push
restriction. Pas recommandé pour le travail d'équipe. À partir de git documentation: Si quelqu'un d'autre construit sur le dessus de votre histoire originale tout en vous complet, à la pointe de la direction générale de la télécommande peuvent avancer avec son commis, et poussant à l'aveuglette avec --force perdre son travail.Cela signifie que quelqu'un a poussé à travailler sur le dépôt distant, de le fusionner avec votre travail, vous pouvez exécuter
git pull --rebase
puis poussez votre travail sur le dépôt distant.git pull --rebase
pour un débutant.git pull
est une bonne option
Mais aussi:
git push origin master --force commande sera éventuellement aider si le problème persiste
@tunacy l'a très bien dit.
quelqu'un a commis référentiel , donc vous avez juste besoin de faire
et
c'est tout
vous pouvez également utiliser
pour la fusion
Je pense avoir exactement le même problème.
J'ai demandé à un ami pour l'aider et il a juste copié le coller dans le dépôt principal et a écrit le comand ci-dessous:
git remote montrer l'origine
git add .
git commit -m "y compris project2 dans le référentiel principal"
git push -u de l'origine de maître
À la fin, j'ai eu deux pâtes dans le référentiel principal de deux différents projets.
Quand vous commencez à travailler avec git, vous pouvez prendre un coup d'oeil un peu dans la documentation: http://git-scm.com/doc.
À partir de votre description je comprends, vous avez référentiel existant avec les fichiers qui sont partagés avec d'autres camarades de classe. Par conséquent, vous devez d'abord tirer l'ensemble du projet (avec tous les fichiers). Après avoir mis à jour la version du projet sur votre dépôt local, vous pouvez pousser valider les modifications apportées au référentiel.
J'ai rencontré cette erreur quand j'ai ouvert le terminal/GitBash dans le mauvais répertoire. En fait de l'extérieur du dépôt de dossier. Vérifiez si vous êtes dans le bon endroit.
! [rejected] master -> master (fetch first)'
Utilisation:
$ git pull
alors:
$ git push
Solution de rechange:
$ git push --force origin master
mais cela va entraîner la suppression de fichiers dans votre répertoire github afin de mieux préférer la première, il va tirer d'abord le fichier à votre dépôt local et ensuite vous pouvez pousser votre travail.