У меня есть несколько вопросов о следующей последовательности событий.На расходящихся ветвях GIT
На этот код работают 2 разработчиков. В первую очередь, , что заставляет ветви расходиться на первом месте?
11:05:08 ~/myApp $ git status
# On branch Dev
# Your branch and 'origin/Dev' have diverged,
# and have 1 and 3 different commit(s) each, respectively.
#
nothing to commit (working directory clean)
11:10:39 ~/myApp $ git push origin Dev:Dev
To ssh://[email protected]/myApp-web.git
! [rejected] Dev -> Dev (non-fast-forward)
error: failed to push some refs to 'ssh://[email protected]/myApp-web.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.
Как предложил Git, я пытался сделать тянуть от remote/Dev
к местным Dev
, только чтобы увидеть:
11:10:51 ~/myApp $ git pull origin Dev:Dev
From ssh://mygitserver/myApp-web
! [rejected] Dev -> Dev (non-fast-forward)
Git тянуть работал, однако. Почему git pull работал и git тянул начало Dev: Dev не удалось?
11:13:05 ~/myApp $ git pull
Merge made by recursive.
WebContent/BL/a.jsp | 14 +++++-------
WebContent/RJ/b.jsp | 3 +-
.../RJ/c.jsp | 22 ++++++++++----------
WebContent/RJ/d.jsp | 14 ++++++------
WebContent/TM/e.jsp | 12 ++++------
5 files changed, 31 insertions(+), 34 deletions(-)
После git status
и git push origin Dev:Dev
работали без приключений.
Для OP: изменения, происходящие в удаленном * и * локальном репозитории, действительно означают, что кто-то сделал изменения и нажал на пульт дистанционного управления, поэтому подумайте об этом как о дивергентном развитии, выполненном вами и, по крайней мере, другом разработчике. – Cascabel