Git: não é possível fazer o checkout branch - erro: pathspec '…' não corresponde a nenhum arquivo conhecido por git

706

Não sei por que não consigo fazer check-out de uma filial na qual trabalhei anteriormente. Veja os comandos abaixo (nota: coé um apelido para checkout):

ramon@ramon-desktop:~/source/unstilted$ git branch -a
* develop
  feature/datts_right
  feature/user_controlled_menu
  feature/user_controlled_site_layouts
  master
  remotes/origin/HEAD -> origin/master
  remotes/origin/develop
  remotes/origin/feature/datts_right
  remotes/origin/master
ramon@ramon-desktop:~/source/unstilted$ git co feature/user_controlled_site_layouts 
error: pathspec 'feature/user_controlled_site_layouts' did not match any file(s) known to git.

Não sei ao certo o que isso significa e não consigo encontrar nada que eu possa entender no Google.

Como faço o checkout dessa ramificação e o que posso ter feito para quebrar isso?

ATUALIZAÇÃO :

Encontrei este post e a execução git show-refme dá:

97e2cb33914e763ff92bbe38531d3fd02408da46 refs/heads/develop
c438c439c66da3f2356d2449505c073549b221c1 refs/heads/feature/datts_right
11a90dae8897ceed318700b9af3019f4b4dceb1e refs/heads/feature/user_controlled_menu
c889b37a5ee690986935c9c74b71999e2cf3c6d7 refs/heads/master
c889b37a5ee690986935c9c74b71999e2cf3c6d7 refs/remotes/origin/HEAD
e7c17eb40610505eea4e6687e4572191216ad4c6 refs/remotes/origin/develop
c438c439c66da3f2356d2449505c073549b221c1 refs/remotes/origin/feature/datts_right
c889b37a5ee690986935c9c74b71999e2cf3c6d7 refs/remotes/origin/master
23768aa5425cbf29d10ff24274adad42d90d15cc refs/stash
e572cf91e95da03f04a5e51820f58a7306ce01de refs/tags/menu_shows_published_only
429ebaa895d9d41d835a34da72676caa75902e3d refs/tags/slow_dev

UPDATE no .gitdiretório ( user_controlled_site_layoutsestá no refs/heads/feature folder):

$ ls .git/refs/heads/feature/
datts_right  user_controlled_menu  user_controlled_site_layouts
$ cat .git/refs/heads/feature/user_controlled_site_layouts
3af84fcf1508c44013844dcd0998a14e61455034

ATUALIZAÇÃO em git show 3af84fcf1508c44013844dcd0998a14e61455034

$ git show 3af84fcf1508c44013844dcd0998a14e61455034
commit 3af84fcf1508c44013844dcd0998a14e61455034
Author: Ramon Tayag <[email protected]>
Date:   Thu May 12 19:00:03 2011 +0800

    Removed site layouts migration

diff --git a/db/schema.rb b/db/schema.rb
index 1218fc8..2040b9f 100755
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -10,7 +10,7 @@
 #
 # It's strongly recommended to check this file into your version control system.

-ActiveRecord::Schema.define(:version => 20110511012647) do
+ActiveRecord::Schema.define(:version => 20110503040056) do

   create_table "attachments", :force => true do |t|
     t.string   "name"
@@ -205,15 +205,6 @@ ActiveRecord::Schema.define(:version => 20110511012647) do
     t.integer  "old_id"
   end

-  create_table "site_layouts", :force => true do |t|
-    t.string   "name"
-    t.text     "description"
-    t.text     "content"
-    t.integer  "site_id"
-    t.datetime "created_at"
-    t.datetime "updated_at"
-  end
-
   create_table "site_styles", :force => true do |t|
     t.text     "published"
     t.datetime "created_at"
Ramon Tayag
fonte
Isso pode ajudar? stackoverflow.com/questions/2527355/…
Boldewyn
Funciona se você fizer git checkout refs/heads/user_controlled_site_layouts:?
Mark Longair
2
Mark - não, ainda recebe o mesmo erro.
Ramon Tayag #
1
Ao ver sua atualização, não tenho certeza de como você tem uma ramificação que aparece, git branch -amas não está git show-ref. O arquivo .git/refs/heads/feature/user_controlled_site_layoutexiste realmente? Se sim, o que cat .git/refs/heads/feature/user_controlled_site_layoutdá?
Mark Longair
1
Eu recebi o mesmo erro, criei a ramificação de outro repositório e tente fazer checkout dessa ramificação para outro repositório. Então eu entendi por causa dos diferentes repositórios.
Kushan Gunasekera

Respostas:

947

Tente git fetchque seu repositório local obtenha todas as novas informações do github. Leva apenas as informações sobre novas ramificações e nenhum código real. Depois disso, git checkoutdeve funcionar bem.

MarkoHiel
fonte
19
Para esclarecimentos adicionais, git fetché útil quando você precisa sincronizar seu repositório local com o repositório remoto, mas não deseja mesclar as alterações na sua pasta de trabalho.
Mark Lakata
138
No caso de um clone com vários controles remotos, o git checkout Branchnão funciona. Com vários controles remotos, apenas o nome da Filial é ambíguo e requer a especificação de remoto / ramificação. O comando git checkout -b branch remote/branchfunciona nesse cenário.
Umair Ishaq
1
Eu consegui criar um "mestre" local de alguma forma, embora o "git fetch" tenha me aproximado, tive que excluir meu mestre local primeiro ("git branch -d master") antes de mudar para o mestre remoto ("git checkout" mestre"). Caso isso ajude qualquer um que seja tão bobo quanto eu!
Jamie Brown
1
@ Aleks, não é a resposta aceita, porque não tem nada a ver com a pergunta do OP. Ele não podia mais verificar uma filial que havia feito anteriormente (ou seja, criada) localmente . Só porque outras pessoas com um problema diferente e muito mais básico descobriram e votaram positivamente essa resposta (que é completamente trivial e conhecida por qualquer usuário git com mais de dois dias de experiência) não significa que o OP deve aceitá-la.
Michael Johnston
11
git fetchpoderia fazer o trabalho. Mas pode não conseguir obter todos os ramos remotos. Você precisaria definir o padrão de correspondência de busca. git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"consulte: stackoverflow.com/questions/11623862/…
Jichao
363

Eu estava recebendo esse erro quando tentei fazer o checkout do novo ramo:

error: pathspec 'BRANCH-NAME' não corresponde a nenhum arquivo conhecido pelo git.

Quando tentei git checkout origin/<BRANCH-NAME>, recebi o HEAD desanexado:

(separado da origem /)

Por fim, fiz o seguinte para resolver o problema :

git remote update
git fetch 
git checkout --track origin/<BRANCH-NAME>
Mayank
fonte
15
com este comando "checkout", tenho a seguinte mensagem: fatal: Não é possível atualizar os caminhos e alternar para o ramo 'foo' ao mesmo tempo.
NEOline
1
Depois de modificar manualmente o endereço remoto, não foi possível fazer o checkout de novas ramificações. "git remote update" parecia fazer o truque.
martin
sem a "atualização remota do git", não funcionava. Obrigado!
Kristiyan Tsvetanov 03/08/19
git checkout --track origin/staging fatal: git checkout: --track and --no-track require -bgit versão 1.5.6.5
Ivan Borshchov
Usado próxima vez terceiro comandogit checkout -b staging --track origin/staging
Ivan Borshchov
152

Eu recebi esse erro para uma ramificação remota e sem ramificação de rastreamento local. Mesmo tendo certeza de que verifiquei as filiais remotas por meio de um simples

git checkout feature/foo

no passado, para contornar esse erro, tive que

git checkout -t -b feature/foo origin/feature/foo

Também não tenho ideia do que fiz para me meter nessa situação.

Gregory McIntyre
fonte
1
Infelizmente, não o enviei ao servidor git remoto.
Ramon Tayag 31/05
Isso funcionou para mim. Isso aconteceu no git v 1.6 na máquina FC10.
FractalSpace 14/02
26
O Git geralmente adivinha o ramo remoto para fazer check-out, mas ao usar mais de um controle remoto, parece que ele não pode mais fazer isso. Fonte: makandracards.com/makandra/...
Elias Lynn
1
fazendo git recurso checkout / foo vez de foo check-out apenas git funcionou para mim
Alejandro Moreno
isso começou a acontecer comigo (em um repositório com muitos controles remotos e centenas de ramos dos quais eu vinha checando com sucesso os ramos de origem há 3 anos) e fiquei confuso. Após a inspeção, descobri que havia adicionado um novo controle remoto e o havia copiado / colado em um editor de texto, em vez de usar o comando git, e esqueci de alterar a fetch = +refs/heads/*:refs/remotes/origin/*linha para corresponder ao novo nome do controle remoto. RI MUITO. Talvez isso tenha acontecido com Makandra? porque depois de corrigi-lo, verificar o branch novamente obtê-lo de origem, mesmo que eu tenha muitos controles remotos.
Michael Johnston
91

Se você excluiu uma ramificação git branch -D yourbranchnamee puxou / clonou novamente seu repositório, pode ser necessário criar sua ramificação local novamente.

Tentar:

git checkout -b yourbranchname
Francisco Alvarez
fonte
esta opção sempre funciona, mesmo onde os arquivos já foram alterados e você deseja enviá-los para o ramo recém-criado.
Nerius Jok
Este foi um comentário útil porque, embora eu tenha compartilhado o mesmo problema / pergunta do OP aqui, as respostas fornecidas assumiram uma situação direta. Infelizmente, na minha situação, eu já havia criado SOMENTE um ramo local e o excluí como observado aqui por @Francisco Alvarez. Portanto, não importa como eu tentei as outras soluções aqui, não consegui extrair o novo ramo remoto. Esta resposta salvou meu bacon.
David
61

Tenho as mesmas perguntas e obtive algumas informações neste link: git fetch não busca todas as ramificações

Portanto, agora, posso não ter certeza de como essa situação aconteceu, pelo menos podemos resolvê-la:

Etapa 1. Verifique sua configuração "remote.origin.fetch", deve ser assim

$ git config --get remote.origin.fetch

+ refs / heads / private_dev_branch: refs / remotes / origin / private_dev_branch

Etapa 2. Altere "remote.origin.fetch" para buscar tudo

$ git config remote.origin.fetch "+ refs / heads / *: refs / remotes / origin / *"

$ git config --get remote.origin.fetch

+ refs / heads / *: refs / controles remotos / origem / *

Em seguida, você pode tentar "git pull" (talvez "git fetch origin" também funcione, mas eu não tentei) para obter todo o ramo.

bearzyj
fonte
@onionjake está certo, desculpe-me por não ter verificado as perguntas em todos os detalhes. Acabei de receber as mesmas mensagens de erro ao tentar a mesma ação de "git checkout <existed_branch>", mas diferente do problema do originador, na verdade ----- o originador podia ver a ramificação localmente enquanto eu não podia. Minha resposta pode resolver o problema para quem não buscou todas as ramificações no avançado. Mas não a situação do problema do originador.
bearzyj
3
Muitas pessoas, incluindo eu, recebem esse erro, porque podem clonar um repositório com a bandeira --branch; portanto, mesmo após a busca do git, elas não recebem outras ramificações e não podem fazer check-out remoto. Isso corrige esse problema. Obrigado!
Orif Khodjaev 27/01/19
Muito obrigado. Eu estava usando a imagem de Dock docker do tensorflow, e isso restringe a ramificação a determinada versão. Depois de definir a configuração de busca, agora posso fazer o checkout.
22819 Michael_Zhang
24

Os usuários do Git Windows devem tomar cuidado - sem a configuração--icase-pathspecs ou GIT_ICASE_PATHSPECS = 1 env var , os git pathspecs diferenciam maiúsculas de minúsculas. Nesse caso,

git checkout origin/FooBranch "Some/Path/To/File.txt"

não é o mesmo que

git checkout origin/FooBranch "some/path/to/file.Txt"
StuartLC
fonte
1
Uma coisa a notar que não estava claro de documentação é que as --icase-pathspecsnecessidades de parâmetro para vir em primeiro lugar ou pelo menos antes-C <path>
sonyisda1
21

Se o nome do ramo e você não tiver nenhum arquivo não confirmado, tente este

git fetch && git checkout <branch name>
Sajin M Aboobakkar
fonte
Isso não parece estar relacionado à pergunta?
onionjake
Eu tenho o mesmo problema mencionado acima, resolvidos utilizando os seguintes comandos
Sajin M Aboobakkar
19

Eu enfrentei o problema ao mudar de ramo.

Eu fiz um puxão git no ramo atual e tentei fazer o checkout do novo e funcionou

git pull // on your old branch git checkout <new_branch>

Ankit Marothi
fonte
Really
helpful
Por que isso funcionaria? Faz git pullmais do que puxar a ramificação atual?
Cameron Hudson
Pode ser que você esteja tentando extrair de um ramo criado por outra pessoa e que ainda não foi extraído no seu repo atual.
Ankit Marothi
15
git pull

Isso simplesmente o corrigiu para mim :)

OpMt
fonte
13

Eu tenho o mesmo problema porque usei git clone --depth=1, o que implica --single-branch.

Fazer um concluído git cloneirá corrigi-lo.

Huachao Huang
fonte
Obrigado por apontar isso. É exatamente o mesmo problema que eu estava enfrentando. Obrigado
Mukesh Kumar 02/02
Um clone completo pode não ser necessário. Se o ramo for criado por outra pessoa DEPOIS de você ter clonado o repositório originalmente, você receberá esse erro porque o repositório local não possui nenhuma informação sobre esse novo ramo. Apenas mude para master e faça um git pull. Em seguida, tente fazer o checkout do novo ramo.
Yasin
12

Consegui isso quando fiz o seguinte:

  • IDE IntelliJ usado, conectado ao git
  • Criou um novo arquivo e foi adicionado ao git
  • Renomeou o novo arquivo

Quando tentei fazer o check-in no diretório, recebi este erro.

Consertar:

Abri o repositório em extensões git. Vi que o arquivo (com o nome antigo) foi preparado. Mas como não existia mais, não poderia ser comprometido.

Simplesmente desempenhou esse arquivo.

Em seguida, adicionei novamente o arquivo (desta vez corretamente nomeado) ao git e o fiz sem erros.

Somaiah Kumbera
fonte
O engraçado é que ele ainda funciona com o TortoiseGit, mesmo que não funcione em inteligência
Marian Klühspies
3
Isso me ajudou muito. Eu usei o SourceTree para encontrar esse f * ck r de um arquivo e desestabilizá-lo.
Vinchenzo 18/06
10

Eu tive esse problema hoje eu estava tentando git checkout fooe temerror: pathspec 'foo' did not match any file(s) known to git.

Acontece que eu estava no repositório errado . Então, lição aprendida: verifique para qual repositório você está olhando antes de surtar.

James Harrington
fonte
Ha - sim, este era mim - criado filial em Bitbucket de bilhete Jira, não percebeu que o criou em algum repo aleatória
Keir
Nota: Eu estava trabalhando com vários controles remotos, tinha um definido corretamente e o outro apontando para o repositório errado. tããão Obrigado pela lembrança, eu poderia facilmente ver o meu problema quando eu fiz um git remoto -v
Dreamling
9

Eu recebi esse erro ao tentar fazer checkout de uma filial via:

git checkout branchX

que eu não tinha verificado antes. Funcionou apenas ao declarar explicitamente o controle remoto:

git checkout --track origin/branchX

A razão para isso foi que eu tinha 2 controles remotos diferentes (origem + sth. Else) configurados no git config. Como não precisava do segundo controle remoto, eu o removi e voilá, funcionou. A alternativa para definir o controle remoto padrão via:

checkout.defaultRemote=origin

não funcionou para mim

RS1980
fonte
Eu adicionei esta resposta porque todas as outras respostas sugeridas não funcionaram para mim, por isso espero que ajude alguém que tenha a mesma causa (2 controles remotos).
RS1980 21/11/19
8

Primeiro, faça o checkout da filial pai.

git fetch --all --prune 
git checkout <your branch>

Espero que ajude!.

Shradhey Tripathi
fonte
8

Corrigi-o modificando meu arquivo de configuração git Verifique seu arquivo de configuração no diretório git - .git\config

Anteriormente

[remote "origin"]
url = http://git.xyz.com/abc-group/pqr.git
fetch = +refs/heads/develop:refs/remotes/origin/develop

Corrigi modificando-o para

[remote "origin"]
url = http://git.xyz.com/abc-group/pqr.git
fetch = +refs/heads/*:refs/remotes/origin/*

Observe que o cabeçalho estava apontando para apenas um ramo, portanto, não foi possível encontrar a referência para outros ramos existentes, alterei-o para * para verificar tudo na origem.

HarsH
fonte
Obrigado, amigo, horas de esforços e finalmente cheguei à sua solução.
Sunil Lulla
7

No sistema operacional Windows, por padrão, o git é instalado com

core.ignorecase = true

Isso significa que os arquivos git repo não diferenciam maiúsculas de minúsculas. Para alterar isso, você precisa executar:

\yourLocalRepo> git config core.ignorecase false

você pode encontrar essa configuração no arquivo .git \ config

Vasile Bors
fonte
7

Copiei a origem remota urlde outro .git/configarquivo, fazendo assim o meu novo.git/config arquivo estivesse ausente na linha a seguir na [remote "origin"]seção

fetch = +refs/heads/*:refs/remotes/origin/*

Adicionando linha acima corrigida error: pathspec 'master' did not match any file(s) known to git.

AamirR
fonte
6

Eu tive o mesmo problema. Pensei que tinha um nome de filial fooquando tento:

git checkout foo

Eu estava conseguindo:

error: pathspec 'foo' did not match any file(s) known to git.

Então tentei o nome completo da filial:

git checkout feature/foo

então trabalhou para mim.

tokhi
fonte
5

Se isso acontecer no Windows, provavelmente é o problema do nome do arquivo.

Hoje eu tive esse erro - criei um novo arquivo, adicionei ao GIT, alterei uma letra do nome do arquivo de baixo para cima e não consegui nada - confirmar, reverter e excluir o arquivo do repositório.

A única solução que encontrei foi alterar o nome do arquivo novamente para exatamente o mesmo caso quando adicionei esse arquivo ao GIT, em seguida, reverti o GIT para remover esse arquivo do GIT e alterei o nome do arquivo novamente conforme desejado. Após essas mudanças, eu poderia comprometer-me a repo e depois empurrar sem nenhum problema.

Marcin Nabiałek
fonte
Isso ajudou, mas deve ser mencionado para renomear via git mv. Acho que você já fez isso desta forma, porque fazê-lo através do meu IDE (IntelliJ PhpStorm) falhou para mim ...
Dennis98
5

No meu caso, tenho duas filiais 1) master (que é para servidor ativo) 2) dev (servidor de teste). Eu havia configurado vários controles remotos para enviar códigos no respectivo servidor. Quando tentei mudar de ramo, recebi o erro comoerror: pathspec 'master' did not match any file(s) known to git.

Você pode vê-los por git remote -v. Eu havia removido outro controle remoto, excetoorigin remotogit remote remove <remote-name>

Então git fetch

Agora eu posso fazer o checkout do ramo git checkout <branch-name>.

NiRmaL
fonte
5

Eu encontrei esse mesmo problema quando estava brincando com o git. Ao tentar meu primeiro commit ...

git commit -m 'first commit!'

Eu recebi o erro mencionado pelo OP ...

error: pathspec 'commit!'' did not match any file(s) known to git.

Eu pensei que poderia estar confundindo o git usando uma palavra-chave na mensagem de confirmação, então tentei algumas outras palavras e recebi o mesmo erro.

Finalmente, usei aspas duplas na mensagem ...

git commit -m "first commit!"

Isso acabou sendo bem-sucedido ...

[master (root commit) 0000000] first commit!
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 dummyDoc.txt
TheLastGIS
fonte
5

Eu cometi um erro bobo de não fornecer a bandeira -m ao confirmar (lol acontece)

git commit -m "commit message in here"
Ajain Vivek
fonte
mesma situação aqui. apenas esqueça "-m", obtenha o mesmo erro msg.
Niuya
5

Eu tive uma causa raiz diferente

Eu tinha um script que basicamente pesquisa todos os ramos que correspondem à chave de problema jira no "PRJ-1234" entre todos os ramos para executar um comando git branch checkout no ramo correspondente

O problema no meu caso foi de 2 ou mais ramos compartilhados com a mesma chave jira e, portanto, causou uma falha no meu script com o erro mencionado acima

Excluindo a ramificação não utilizada antiga e certificando-se de que apenas uma ramificação tivesse a referência da chave jira corrigida

Aqui está o meu código, caso alguém queira usá-lo

git remote update
git fetch --all --prune 
git branch -r --list *$1* | xargs git checkout --force

salve isso como switchbranch.sh

Em seguida, use-o no terminal ./switchbranch.sh PRJ-1234

Korayem
fonte
Para mim, também era o caminho / nome correto do upstream, incluindo buscar todas as tags remotas e "git fetch --all --tags --prune" encontrando o nome certo: "git branch -a | grep some_upstream" antes de verificá-lo com o caminho completo como "git checkout -f --track -b new_branch remotes / upstream / some_upstream_branch"
kisna
4

Nenhuma dessas respostas resolveu meu problema:

Nikolai@CALIGARI-7 ~/Documents/NetBeansProjects/Version (master)
$ git log --format=oneline
b9cc6a9078312865280fb5432a43e17eff03a5c6 Formatted README
288772f36befe6bd60dd41b8185f1e24e0119668 Updated README documentation
d2bdbe18f4169358d46fad50eacfb89786df3bf8 Version object v3.0.0-SNAPSHOT
a46b1910a3f548b4fa254a6055d25f68d3f217dd VersionFactory is now Platform agnostic
24179ae569ec7bd28311389c0a7a85ea7b4f9594 Added internal.Platform abstraction
252b684417cf4edd71aed43a15da2c8a59c629a7 Added IPlugin implementation for Sponge
e3f8d21d6cf61ee4fc806791689c984c149b45e3 Added IPlugin implementation for Bukkit
aeb403914310b4b10dee9e980cf64472e2bfda79 Refactored Version.java
ef50efcff700c6438d57f70fac30846de2747a7e Refactored TesterFactory
a20808065878d4d28657ae362235c837cfa8e625 Added IPlugin abstraction
9712a3575a70060d7ecea8b62bb5e888fdc32d07 Heavily refactored Tester
02d025788ae740dbfe3ef76a132cea8ca4e47467 Added generic Predicate<T> interface
9c565777abea9be6767dfdab4ab94ed1173750dd Minor refactoring of testCompareTo()
2ff2a28c221681e256dcff28770782736d3a796a Version object v2.0.1
d4b2e2bd830f77cdbc2297112c2e46b6555d4393 Fix compareTo()
05fe7e012b07d1a5b8de29804f96d9a6b24229a1 Make compareTo() fail
6e85371414357a41c1fc0cec0e75adba92f96832 Fix VersionFactory passing null
c1fd1f032f87d860d5ed9d6f6679c9fa522cff8d Version object v2.0
62c3a92c008a2ed11f0a4d016080afc3541d0700 Version object v1.2
c42e9e617128085e872c51b4d977a04e48d69e8f Deprecated, doc'd, future-proofed getNm


Nikolai@CALIGARI-7 ~/Documents/NetBeansProjects/Version (master)
$ git checkout 3a796a
error: pathspec '3a796a' did not match any file(s) known to git.

Eu estava tentando voltar e criar o commit para Version object v2.0.1. Felizmente, tive a ideia de experimentar todo o código hash e funcionou! O que significa que eu estava usando a extremidade incorreta do código hash.

Nikolai@CALIGARI-7 ~/Documents/NetBeansProjects/Version (master)
$ git checkout 2ff2a
Note: checking out '2ff2a'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b new_branch_name

HEAD is now at 2ff2a28... Version object v2.0.1

Nikolai@CALIGARI-7 ~/Documents/NetBeansProjects/Version ((2ff2a28...))
$

Como mostrado acima, para códigos de hash parciais, você deve fornecer o front-end, não o back-end.

Nikolaii99
fonte
4

Aconteceu comigo depois de renomear um arquivo não confirmado no Android Studio.

O Git parecia ter a versão antiga em seu repositório, mesmo que ela não existisse mais.

fetch, pull, checkout, add all and so on did not help in my case!

Então eu abri a interface gráfica do Git do TortoiseGit, que me mostrou o arquivo exato que causou problemas.

Depois, apaguei o arquivo do repositório com

git rm -r --cached /path/to/affected/file

e o problema se foi

Marian Klühspies
fonte
3

No meu caso, eu havia renomeado um arquivo alterando o caso do arquivo, ou seja, SomeFile.js -> someFile.js

Eu acho que isso estava relacionado ao problema. Fazer uma busca git não resolveu o problema.

Tirei os arquivos do meu projeto, fiz uma busca e fiz um push sem eles. Depois fiz uma busca, adicionei-as de volta e fiz um empurrão, e funcionou. Não sei se todas essas etapas foram necessárias, mas acabou funcionando.

Kip
fonte
Empurre sem o arquivo renomeado e emissão de arquivo add git fez isso depois para mim
phil294
3

no meu caso, entro no diretório do submódulo sem fazer

  • git submodule init
  • git submodule update

Então o git foi vinculado à pasta pai que realmente perdeu esse ramo.

Ilya Gazman
fonte
3

verifique se não é um erro de digitação no nome do arquivo de destino. Eu estava tentando encenar digitando

git add includes/connection..php

Mas eu não percebi que estava usando dois pontos Mas então eu digito

git add includes/connection.php

Funciona

Matteus Barbosa
fonte
2

Para mim, foi um problema com minhas credenciais


Depois de tentar algumas das respostas, um deles me ajudou a resolver o problema:

A execução git fetchlançou o seguinte erro:

Não foi possível resolver o host: bitbucket.org

Tudo o que eu precisava fazer era forçar meu IDE (código VS no meu caso) a lembrar minhas credenciais:

git config --global credential.helper wincred

O Git sincronizou imediatamente todas as alterações e git checkout <branche>funciona bem agora!

Jeffrey Roosendaal
fonte
1

Eu estava recebendo o mesmo pathspec errorno git-bash. Eu usei o Tortoise git no Windows para alternar / fazer checkout do ramo.

capitão
fonte