Estou tentando atualizar um repositório Git no GitHub. Fiz um monte de mudanças, adicionei-as, enviei commit e tentei fazer a git push
. A resposta me diz que tudo está atualizado, mas claramente não está.
git remote show origin
responde com o repositório que eu esperava.
Por que o Git está me dizendo que o repositório está atualizado quando há commits locais que não são visíveis no repositório?
[searchgraph] git status
# On branch develop
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# Capfile
# config/deploy.rb
nothing added to commit but untracked files present (use "git add" to track)
[searchgraph] git add .
[searchgraph] git status
# On branch develop
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# new file: Capfile
# new file: config/deploy.rb
#
[searchgraph] git commit -m "Added Capistrano deployment"
[develop 12e8af7] Added Capistrano deployment
2 files changed, 26 insertions(+), 0 deletions(-)
create mode 100644 Capfile
create mode 100644 config/deploy.rb
[searchgraph] git push
Everything up-to-date
[searchgraph] git status
# On branch develop
nothing to commit (working directory clean)
git push origin x
ainda não estava configurando o branch x para ser empurrado no futuro. Era devido a um pushspec específico na.gitconfig
[remote "origin"]
seção que estava causando o comportamento do git.Isso aconteceu comigo quando meu aplicativo SourceTree travou durante o teste. E na linha de comando, parecia que o anterior
git add
havia sido corrompido. Se for esse o caso, tente:No último comando, você pode precisar definir a ramificação.
Lembre-se de que isso é o suficiente se você não tiver feito nenhuma ramificação ou algo desse tipo. Nesse caso, certifique-se de enviar para o branch correto like
git push origin develop
.fonte
Experimentar:
fonte
Por favor, tente ir para o último commit e então faça
git push origin HEAD:master
.fonte
Push the current branch to the remote ref matching master in the origin repository. This form is convenient to push the current branch without thinking about its local name.
git push
: / Isso funcionou para mim assim:git push origin HEAD:my_branch_name
.Para o meu caso, nenhuma das outras soluções funcionou. Tive que fazer um backup dos novos arquivos modificados (mostrado com
git status
) e executar agit reset --hard
. Isso me permitiu realinhar com o servidor remoto. Adicionando novos arquivos modificados e executandoFez o truque. Espero que isso ajude alguém, como uma solução de "última chance".
fonte
Agora, parece que você está no branch de desenvolvimento. Você tem um ramo de desenvolvimento na sua origem? Se não, tente
git push origin develop
.git push
funcionará assim que souber sobre um branch de desenvolvimento em sua origem.Como leitura adicional, eu daria uma olhada nas páginas de manual do git-push , em particular, a seção de exemplos.
fonte
Para ser específico, se você deseja mesclar algo para dominar, você pode seguir os passos abaixo.
É uma prática comum no modelo de solicitação pull criar em uma nova ramificação local e, em seguida, enviar essa ramificação para remoto. Para isso, você precisa mencionar onde deseja enviar suas alterações remotamente. Você pode fazer isso mencionando remoto no momento do envio.
Se você deseja criar um branch diferente do seu nome de branch local, você pode fazer isso com o seguinte comando.
fonte
Graças a Sam Stokes. De acordo com a resposta dele você pode resolver o problema de maneira diferente (usei dessa forma). Depois de atualizar seu diretório de desenvolvimento, você deve reinicializá-lo
Então você pode enviar e enviar atualizações para o mestre
fonte
git init
e abra uma nova guia de comando, digite:git push origin branch_name
Isso aconteceu comigo quando eu estava
^C
no meio de uma visitagit push
ao GitHub. O GitHub não mostrou que as alterações foram feitas, no entanto.Para consertar, fiz uma alteração em minha árvore de trabalho, confirmei e empurrei novamente. Funcionou perfeitamente bem.
fonte
Isso aconteceu comigo. Acabei de comprometer novamente as alterações e, em seguida, enviei.
fonte
Eu tentei muitos métodos, inclusive os definidos aqui. O que eu tenho é,
Certifique-se de que o nome do repositório é válido. A melhor maneira é copiar o link do site do repositório e colar no git bash.
Certifique-se de ter confirmado os arquivos selecionados.
Se ambas as etapas não funcionarem, tente
git push -u -f origin master
fonte
Em vez disso, você pode tentar o seguinte. Você não tem que ir
master
; você pode forçar diretamente o envio das alterações de seu próprio branch.Conforme explicado acima, quando você faz um rebase, está alterando o histórico em seu branch. Como resultado, se você tentar fazer um normal
git push
após um rebase, o Git irá rejeitá-lo porque não há um caminho direto do commit no servidor para o commit no seu branch. Em vez disso, você precisará usar o sinalizador-f
ou--force
para dizer ao Git que sim, você realmente sabe o que está fazendo. Ao fazer push push, é altamente recomendado que você defina suapush.default
configuração como simples, que é o padrão no Git 2.0. Para certificar-se de que sua configuração está correta, execute:Assim que estiver correto, você pode simplesmente executar:
E verifique sua solicitação de pull. Deve ser atualizado!
Vá para a parte inferior de Como fazer o rebase de uma solicitação pull para obter mais detalhes.
fonte
Certifique-se também de que está empurrando para o branch correto.
fonte
Isso aconteceu comigo quando tentei empurrar de um novo branch e usei em seu
git push origin master
lugar. Você deve:git push origin your_new_branch
se quiser que este branch também ocorra no repo remoto.git merge origin master
.fonte
fonte