J'essaie de pousser l'un de mes projets vers github, et je reçois toujours cette erreur:
peeplesoft@jane3:~/846156 (master) $ git push
fatal: The current branch master has no upstream branch.
To push the current branch and set the remote as upstream, use
git push --set-upstream origin master
J'ai donc essayé et obtenu ceci:
peeplesoft@jane3:~/846156 (master) $ git push --set-upstream origin master
fatal: Authentication failed
Un autre thread stackoverflow m'a suggéré d'essayer ce qui suit, avec des résultats décevants.
peeplesoft@jane3:~/846156 (master) $ git push -u origin master
fatal: Authentication failed
Ensuite, j'ai essayé ceci:
peeplesoft@jane3:~/846156 (master) $ git config remote.origin.push HEAD
peeplesoft@jane3:~/846156 (master) $ git push
fatal: Authentication failed
Des indices?
git
Je voulais que tout le monde sache que les commandes affichées par l'OP m'ont aidé, encore plus que les réponsesRéponses:
Vous avez corrigé le push, mais, indépendamment de ce problème de push (que j'ai expliqué dans " Pourquoi ai-je besoin de pousser explicitement une nouvelle branche? ":
git push -u origin master
Ougit push -u origin --all
), vous devez maintenant résoudre le problème d'authentification.Cela dépend de votre URL (ssh comme dans '
[email protected]/yourRepo
, ou https comme danshttps://github.com/You/YourRepo
)Pour l'URL https:
Si votre compte est protégé par l' authentification à deux facteurs , votre mot de passe normal ne fonctionnera pas (pour l'URL https), comme expliqué ici ou ici .
Même problème si votre mot de passe contient un caractère spécial (comme dans cette réponse )
Si https ne fonctionne pas (parce que vous ne voulez pas générer de clé secondaire, un PAT: Personal Access Token), vous pouvez passer à ssh, comme je l'ai montré ici .
Comme indiqué par qwerty dans les commentaires, vous pouvez créer automatiquement la branche du même nom sur la télécommande avec:
Pourquoi?
.git\HEAD
fichier) a le refspec de la branche actuellement vérifié (par exemple:ref: refs/heads/master
)Puisque la refpec utilisée pour cette poussée est head: (pas de destination), un
:<dst>
moyen manquant pour mettre à jour la même ref que la<src>
(head, qui est une branche).Cela ne fonctionnera pas si HEAD est détaché .
la source
git push origin head -u
. Crée automatiquement la branche du même nom sur la télécommande.Vous pouvez également utiliser la commande suivante:
Cela crée (-u) une autre branche dans votre référentiel distant. Une fois l'authentification effectuée avec ssh, c'est le cas.
la source
-u
option est le raccourci pour l'--set-upstream
option qui n'a rien à voir avec la création d'une nouvelle branche. De la documentation de l' option-u
ou--set-upstream
: "Pour chaque branche qui est à jour ou poussée avec succès, ajoutez une référence en amont (tracking), utilisée par git-pull [1] sans argument et d'autres commandes.". En fait, je ne comprends pas pourquoi cette réponse a été autant votée qu'elle est trompeuse.Apparemment, vous obtenez également ce message d'erreur lorsque vous oubliez le
--all
paramètre lorsque vous appuyez pour la première fois. J'ai écritqui a donné cette erreur, il aurait dû être
Oh comme j'aime ces erreurs de copier-coller ...
la source
Vous devez d'abord configurer la télécommande, puis appuyez sur.
Instructions réelles
la source
Veuillez essayer ce scénario
la source
Si vous définissez l'action
git push
qu'il doit entreprendre si aucune spécification de référence n'est indiquée sur la ligne de commande, aucune spécification de référence n'est configurée dans la télécommande et aucune spécification de référence n'est impliquée par aucune des options fournies sur la ligne de commande.Simplement fais-le:
puis
la source
Eh bien, j'avais le même problème lors du téléchargement et je l'ai résolu en faisant la même chose qu'il dit de faire: plus tôt, j'essayais de pousser le terminal vers mon référentiel sous Linux par https comme
Mais je n'obtenais aucun résultat et je suis donc allé plus loin et j'ai essayé:
Et ça a marché. Ainsi, vous recevrez un nom d'utilisateur et un mot de passe. J'ai également généré un jeton et au lieu du mot de passe, j'ai collé le jeton et ainsi, cela s'est fait avec succès.
la source
sur un côté très simple, une fois que vous avez d'autres branches, vous ne pouvez pas simplement utiliser pour pousser une branche
Mais vous devez spécifier la branche maintenant, même si vous avez extrait la branche que vous souhaitez pousser, donc
Où peut être même la
master
succursalela source
J'ai fait la simple erreur d'oublier de commettre:
puis
git push origin master
travaillé.la source
J'ai eu le même problème
Je l'ai résolu en utilisant la commande ci-dessous
et il ajoutera une configuration dans le fichier de configuration dans le dossier .git.
la source
Première utilisation
git pull origin your_branch_name
Ensuiteuse git push origin your_branch_name
la source
Il existe une solution simple à cela qui a fonctionné pour moi sur macOS Sierra. J'ai fait ces deux commandes:
S'il montre une erreur fatale concernant l'amont après une future poussée, exécutez simplement:
la source
1. Un ordinateur et votre github associés. Utilisez SSH. Code informatique pour que vous n'ayez pas à soumettre de vérification. Entrez la description de l'image ici
2. git ne peut pas gérer de dossier vide. Vous devez donc écrire un tel readme.md enregistré dans un fichier. Sinon, vous ne trouverez pas le fichier.
3. Votre projet local n'est rien de nouveau pour les projets. S'il vous plaît
git init
git remote add origin +"githublink"
git add .
git commit -m ""
vas y encore.4. puis
git pull origin master
(la clé)5. Enfin
git push origin master
(résoudre tous les problèmes).http://my.oschina.net/psuyun/blog/123005参考 链接
la source
Si vous essayez de pousser votre code directement vers la branche principale, utilisez la commande
Ça m'aide.
la source
J'ai aussi eu la même erreur, je pense que c'est parce que je l'ai cloné et que j'ai essayé de repousser. $ git push -u origin master C'est la bonne commande.
Compter les objets: 8, c'est fait. Compression Delta utilisant jusqu'à 2 threads. Compression d'objets: 100% (4/4), fait. Écriture d'objets: 100% (8/8), 691 octets | 46,00 Kio / s, fait. Total 8 (delta 1), réutilisé 0 (delta 0) à distance: résolution des deltas: 100% (1/1), fait.
[new branch] master -> master Branch master set to track remote remote master from origin.
la source
J'ai eu le même problème, la cause était que j'avais oublié de spécifier la branche
la source
Pour moi, je poussais les modifications vers un référentiel privé auquel je n'avais pas accès en écriture. Assurez-vous que vous disposez des droits d'accès valides lors de l'exécution d'opérations push ou pull.
Vous pouvez directement vérifier via
la source
Pour moi, c'était parce que j'avais supprimé le dossier caché .git .
Je l'ai corrigé en supprimant le dossier, en re-clonant et en effectuant à nouveau les modifications.
la source
Si vous êtes sur une branche, vous pouvez utiliser ceci:
Cela créera automatiquement une nouvelle branche du même nom sur la télécommande.
la source
Pour résoudre ce problème, tout en vérifiant le code de
git
lui-même, vous devez donner la commande comme ci-dessous:git checkout -b branchname origin/branchname
Ici, par défaut, nous définissons
the upstream branch
, vous ne serez donc pas confronté au problème mentionné.la source
Pour moi, le problème vient du nom de ma branche: "# nom-de-ma-branche", sans "#" ça marche très bien!
la source