Comment pousser en amont du dépôt Git?
J'ai un projet avec quelques amis dans GitLab, et il y a bien sûr la branche master, et il y a quelques autres aussi. Quand j'ai cloné le dépôt, j'ai créé également en amont avec la commande git remote add upstream ...
.
Ensuite, j'ai publié une git fetch upstream
. Suivi par git checkout upstream/test1
. Maintenant, si je tape git branch -a
, je obtenir un résultat comme ceci:
* (HEAD detached at upstream/test1)
master
remotes/origin/HEAD -> origin/master
remotes/origin/master
remotes/upstream/test1
remotes/upstream/master
C'est bien beau, mais ensuite j'ai fait quelques modifications au code dans mon upstream/test1
branche. Je ne veux pas encore, à les pousser à origin/test1
, mais je veux être en mesure de pousser mes changements de upstream/test1
pour que mon ami puisse voir. Mais, si je l'émission d'un ensemble de commandes:
git add .
git commit -m "Sample message"
Après la livraison j'ai reçu le message:
[detached HEAD 4f20e95] Sample message
5 files changed, 12 insertions(+), 1 deletions(-)
Et la valeur de hachage changements à 4f20e95
dans mon invite de commande. Ensuite, si je ne git push
, je reçois des messages d'erreur suivants:
fatal: You are not currently on a branch.
To push the history leading to the current (detached HEAD)
state now, use
git push origin HEAD:<name-of-remote-branch>
Comment puis-je pousser mes en amont de la branche sans pousser à l'origine.
- Double Possible de Git push amont à l'origine de la création de la succursale locale
- "TÊTE détachée" signifie littéralement vous n'êtes pas sur une branche.
- Je ne pense pas que c'est un doublon, depuis l'OP veut juste savoir comment pousser à
upstream
, et n'est pas nécessairement ai rien contre la création d'une succursale locale.
Vous devez vous connecter pour publier un commentaire.
La branche
upstream/test1
est un suivi à distance de la branche, qui ne peuvent pas être mis à jour manuellement. Ces branches de la piste de branches sur des serveurs distants, et ne sont mises à jour au cours degit fetch
/git push
.Au lieu de cela, découvrez une nouvelle branche locale d'abord:
Et de s'engager là comme d'habitude. Puisque vous avez déjà commis, au lieu de faire:
Lorsque vous êtes prêt, appuyez à
upstream
:Lorsque vous faites une plaine
git push
, Git utilise des valeurs par défaut pour la distance et de la direction générale de pousser fondé sur certaines options de configuration. Toutefois, si vous n'êtes pas sur une branche (et donc de l'obtention de ladetached HEAD
message), puis Git ne sais pas quelle direction pousser, vous donnant ainsi l'erreur que vous avez reçu.