Je suis un peu un git n00b, et j'ai de la difficulté avec les branches. Je ne pense pas que cette question a été posée, mais il se pourrait que je ne cherche pas les bons mots-clés.Pousser une branche git nécessite une traction sur une autre?
Situation: J'ai un dépôt git à distance et je l'ai vérifié la branche maître sur la machine 1. je l'ai fait la même chose sur la machine 2, sauf que j'ai créé une nouvelle branche (bac à sable) et vérifié sur .
Je tire, apporte des changements, commet et pousse des choses sur la machine 2 - pas de problèmes.
je puis faire quelques changements sur la machine un, COMMIT et essayer de pousser, sauf que je reçois cette erreur:
To [email protected]:/project.git
! [rejected] sandbox -> sandbox (non-fast-forward)
error: failed to push some refs to '[email protected]:/project.git'
To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes (e.g. 'git pull') before pushing again. See the
'Note about fast-forwards' section of 'git push --help' for details.
Si je fais un git pull, je reçois:
Already up-to-date.
Donc pour le moment je dois
git checkout sandbox
git pull
git checkout master
git push
Et puis tout va bien. Il me semble que, étant donné que ce sont des branches différentes, il ne devrait pas être nécessaire pour moi de tirer sur la branche sandbox pour pousser les changements sur le maître. Je pourrais le comprendre si j'essayais de les fusionner, mais cela n'arrivera probablement jamais.
Je soupçonne que mon fichier de configuration est un peu mal, alors la voici:
(Machine 1 - master) .git/config
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[gui]
wmstate = normal
geometry = 1920x970+0+0 368 203
[remote "origin"]
url = [email protected]:/project.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
Et
(Machine 2 - paid) .git/config
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = git+ssh://[email protected]/project.git
[branch "master"]
remote = origin
merge = refs/heads/master
[branch "sandbox"]
remote = origin
merge = refs/heads/sandbox
Il convient de noter, le même problème se produit dans Revers - après une poussée sur le maître, je ne peux pas pousser sur le bac à sable sans vérifier le maître, en tirant puis en revenant au bac à sable.
Il doit y avoir un moyen plus facile - toute aide serait appréciée.