Pourquoi je ne peux pas pousser à ce dépôt nu?
Pouvez-vous expliquer quel est le problème avec cette méthode de travail?
$ git init --bare bare
Initialized empty Git repository in /work/fun/git_experiments/bare/
$ git clone bare alice
Cloning into alice...
done.
warning: You appear to have cloned an empty repository.
$ cd alice/
$ touch a
$ git add a
$ git commit -m "Added a"
[master (root-commit) 70d52d4] Added a
0 files changed, 0 insertions(+), 0 deletions(-)
create mode 100644 a
$ git push
No refs in common and none specified; doing nothing.
Perhaps you should specify a branch such as 'master'.
fatal: The remote end hung up unexpectedly
error: failed to push some refs to '/work/fun/git_experiments/bare'
N'est pas git push
toujours pousser au dépôt, j'ai cloné à partir d'?
- Ne devriez-vous pas spécifier de branche pour pousser?
- après non pas un clone!!! après le problème est résolu, il fonctionne très bien et pas besoin de spécifier la direction générale...juste sur cette première à la caisse d'un dépôt vide cela se produit-ce qui est TRÈS TRÈS ennuyeux...ils devraient résoudre ce problème.
- Espérons que ce post allait être utile à quelqu'un lorsque l'on essaie de faire au - dessus de samranga.blogspot.com/2015/07/... L'erreur dans la question peut être sauté, même lorsque j'essaye de Créer un git BitBucket référentiel à partir d'un déjà existant localement projet
Vous devez vous connecter pour publier un commentaire.
Oui, le problème est qu'il n'y a pas engage dans "nue". C'est un problème avec le premier commit seulement, si vous créez le repos dans l'ordre (nu,alice). Essayez de faire:
Ce ne serait nécessaire que la première fois. Par la suite, il devrait fonctionner normalement.
Que Chris Brown a souligné, vous n'auriez pas ce problème si votre poussée.par défaut a été personnalisé. J'aime amont/tracking.
sudo apt-get upgrade git-core
etsudo apt-get upgrade git
et il pense que aucune mise à jour n'est nécessaire.git --version
retourne 1.7.3.1. Aucune idée de ce qu'il manque? J'avoue actuellementapt-get update
ne fonctionne pas pour moi, mais il n'a pas trop longtemps.matching
; peut-être que vous avezpush.default
ensemble deupstream
/tracking
(oucurrent
) dans votre~/.gitconfig
?git push origin master:master
pour le rendre explicite. Si cela ne fonctionne pas, vérifiez pour voir quelle direction vous êtes sur:git branch
peut-être vous n'avez pas fait le premier commit ou vous avez fait qui s'engagent sur une branche autre que le maître.git push -u origin master
. Il pousse "maître" de l'origine et définit suivi à distance.Si vous:
il va le pousser à le nu-repo.
Il semble que votre alice repo n'est pas suivi correctement.
Cela permettra de montrer la valeur par défaut à distance et de la direction générale.
Si vous
Vous devriez commencer le suivi à distance et de la direction générale. Je ne suis pas sûr si cette option a toujours été dans git.
Cette question relative à la réponse du permis de trouver une solution pour moi... c'était juste une erreur stupide:
N'oubliez pas de commettre premier!
https://stackoverflow.com/a/7572252
Si vous n'avez pas encore commis à votre local de pensions, il n'y a rien de pousser, mais le Git message d'erreur que vous obtenez en retour ne vous aide pas trop.
est la manière canonique de pousser le tout à un nouveau dépôt nu.
Une autre façon de faire la même chose, c'est de créer votre nouvelle, non-dépôt nu, puis faire un simple clone avec
ensuite utiliser
dans l'original (non nu) référentiel.
git push --all ../test_repo
le repo de l'URL à la fin de la commande 😉Essayer dans votre
alice
référentiel (avant de pousser):Ou, configurer la valeur par défaut pour l'utilisateur avec
git config --global …
.git push
fait défaut à laorigin
référentiel (ce qui est normalement le référentiel à partir duquel vous cloné le dépôt), mais il ne fait pas défaut à la poursuite de la branche courante,—la valeur par défaut est de pousser les seules branches qui existe dans le répertoire source et le référentiel de destination.La
push.default
variable de configuration (voir git-config(1)) contrôle ce quegit push
va pousser quand il n'est pas donné à tout “refspec” arguments (c'est à dire quelque chose après un dépôt de nom). La valeur par défaut donne le comportement décrit ci-dessus.Voici les valeurs possibles pour
push.default
:nothing
Cela vous oblige à fournir un “refspec”.
matching
(valeur par défaut)Cela pousse tous branches qui existe dans le répertoire source et le référentiel de destination.
C'est complètement indépendant de la branche qui est en cours d'extraction.
upstream
outracking
(Les deux valeurs signifient la même chose. Celui-ci a été déprécié pour éviter la confusion avec “remote-suivi des” branches. L'ancienne a été introduite dans 1.7.4.2, de sorte que vous aurez à utiliser ce dernier, si vous utilisez Git 1.7.3.1.)
Ces poussez la branche courante dans la direction indiquée par son “en amont” de la configuration.
current
Elle pousse l'actuelle direction de la branche du même nom, au référentiel de destination.
Ces deux derniers finissent par être le même pour les cas courants (par exemple, travail sur local maître qui utilise origin/master comme sa en amont), mais elles sont différentes lorsque la branche locale a un nom différent de ses “en amont” de la direction de la
Avec
push.default
égal àupstream
(outracking
), la poussée serait aller àorigin
’s maître branche. Quand il est égal àcurrent
, la poussée serait aller àorigin
’s quickfix branche.La
matching
paramètre de mise à jourbare
’s maître dans votre scénario une fois qu'il a été établi. Pour l'établir, vous pouvez utilisergit push origin master
une fois.Cependant, la
upstream
(ou peut-êtrecurrent
) semble comme il pourrait être un meilleur match pour ce que vous attendez, de sorte que vous pourriez vouloir essayer:(Encore une fois, si vous êtes toujours à l'aide d'un Git avant de 1.7.4.2, vous aurez besoin d'utiliser
tracking
au lieu deupstream
).- Je utiliser SourceTree client de git, et je vois que leur premier commit/push commande est: