minnymouse@XXXXXXX /c/XXXXXXXXX/XXXXXXXXX/XXXXXXXXX (development)
$ git status
On branch development
Your branch is ahead of 'origin/development' by 2 commits.
(use "git push" to publish your local commits)
nothing to commit, working tree clean
minnymouse@XXXXXXX /c/XXXXXXXXX/XXXXXXXXX/XXXXXXXXX (development)
$ git push origin development
To ssh://xxxxxx/xxx/xxxxx/git/repos/xxxxx
! [rejected] development -> development (fetch first)
error: failed to push some refs to 'ssh://xxxxxx/xxx/xxxxx/git/repos/xxxxx'
hint: Updates were rejected because the remote contains work that you do not
hint: have locally. This is usually caused by another repository pushing to
hint: the same ref. If you want to integrate the remote changes, use
hint: 'git pull' before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
minnymouse@XXXXXXX /c/XXXXXXXXX/XXXXXXXXX/XXXXXXXXX (development)
$ git pull
remote: Counting objects: 10, done.
remote: Compressing objects: 100% (10/10), done.
remote: Total 10 (delta 5), reused 0 (delta 0)
Unpacking objects: 100% (10/10), 1.06 KiB | 43.00 KiB/s, done.
From ssh://xxxxxx/xxx/xxxxx/git/repos/xxxxx
7948726..7dc3f5c development -> origin/development
b9042ed..d04db55 feature/luxor -> origin/feature/luxor
7948726..7dc3f5c production -> origin/production
hint: Waiting for your editor to close the file...
Se eu fechar o editor sem um comentário, ele aborta o pull completamente? Se não, o que significa a mensagem no arquivo do editor:
# Lines starting with '#' will be ignored, and an empty message aborts the commit.
Tudo isso vai ser integrado à minha cópia local de desenvolvimento? Se não, qual é o propósito disso?
7948726..7dc3f5c development -> origin/development
b9042ed..d04db55 feature/luxor -> origin/feature/luxor
7948726..7dc3f5c production -> origin/production
Ele não abortará o pull se você fechar seu editor. Você ainda estará em um estado de mesclagem quando abri-lo novamente.
O que está acontecendo aqui é que você está tentando enviar código para o branch remoto de desenvolvimento. No entanto, ele reconhece que você não está atualizado com o que está atualmente em desenvolvimento. Portanto, ele está rejeitando seu envio e dizendo para você primeiro puxar para baixo o estado atual de desenvolvimento para que o git possa determinar se há algum conflito de mesclagem que você precisa resolver antes de poder enviar.
Neste caso, você não teve nenhum conflito de mesclagem. Quando o prompt
# Lines starting with '#' will be ignored, and an empty message aborts the commit.
apareceu, era vi ou vim solicitando que você interagisse. Se já estava no modo type, você só precisa digitar:wq
e apertar enter. Então você pode pressionar novamente.Se não estiver no modo de tipo, você precisará pressionar i, digitar uma mensagem de mesclagem se desejar, depois esc, digitar
:wq
e clicarenterNo final das contas, parece que você quer ter sua própria ramificação local para onde possa fazer o push e depois mesclá-la com o desenvolvimento, de preferência com uma solicitação de pull.
Para iniciar sua própria nova filial local a partir do desenvolvimento, você deve estar em desenvolvimento, certifique-se de ter a cópia mais recente fazendo
git pull
e então façagit checkout -b branchName
o seguinte:git checkout -b my-new-branch