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-ref
me 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 .git
diretório ( user_controlled_site_layouts
está 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"
git checkout refs/heads/user_controlled_site_layouts
:?git branch -a
mas não estágit show-ref
. O arquivo.git/refs/heads/feature/user_controlled_site_layout
existe realmente? Se sim, o quecat .git/refs/heads/feature/user_controlled_site_layout
dá?Respostas:
Tente
git fetch
que 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 checkout
deve funcionar bem.fonte
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.git checkout Branch
não funciona. Com vários controles remotos, apenas o nome da Filial é ambíguo e requer a especificação de remoto / ramificação. O comandogit checkout -b branch remote/branch
funciona nesse cenário.git fetch
poderia 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/…Eu estava recebendo esse erro quando tentei fazer o checkout do novo ramo:
Quando tentei
git checkout origin/<BRANCH-NAME>
, recebi o HEAD desanexado:Por fim, fiz o seguinte para resolver o problema :
fonte
git checkout --track origin/staging fatal: git checkout: --track and --no-track require -b
git versão 1.5.6.5git checkout -b staging --track origin/staging
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
no passado, para contornar esse erro, tive que
Também não tenho ideia do que fiz para me meter nessa situação.
fonte
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.Se você excluiu uma ramificação
git branch -D yourbranchname
e puxou / clonou novamente seu repositório, pode ser necessário criar sua ramificação local novamente.Tentar:
fonte
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
Etapa 2. Altere "remote.origin.fetch" para buscar tudo
Em seguida, você pode tentar "git pull" (talvez "git fetch origin" também funcione, mas eu não tentei) para obter todo o ramo.
fonte
Os usuários do Git Windows devem tomar cuidado - sem a configuração
--icase-pathspecs
ouGIT_ICASE_PATHSPECS = 1
env var , os git pathspecs diferenciam maiúsculas de minúsculas. Nesse caso,não é o mesmo que
fonte
--icase-pathspecs
necessidades de parâmetro para vir em primeiro lugar ou pelo menos antes-C <path>
Se o nome do ramo e você não tiver nenhum arquivo não confirmado, tente este
fonte
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>
fonte
git pull
mais do que puxar a ramificação atual?Isso simplesmente o corrigiu para mim :)
fonte
Eu tenho o mesmo problema porque usei
git clone --depth=1
, o que implica--single-branch
.Fazer um concluído
git clone
irá corrigi-lo.fonte
Consegui isso quando fiz o seguinte:
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.
fonte
Eu tive esse problema hoje eu estava tentando
git checkout foo
e 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.
fonte
Eu recebi esse erro ao tentar fazer checkout de uma filial via:
que eu não tinha verificado antes. Funcionou apenas ao declarar explicitamente o controle remoto:
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:
não funcionou para mim
fonte
Primeiro, faça o checkout da filial pai.
Espero que ajude!.
fonte
Corrigi-o modificando meu arquivo de configuração git Verifique seu arquivo de configuração no diretório git -
.git\config
Anteriormente
Corrigi modificando-o para
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.
fonte
No sistema operacional Windows, por padrão, o git é instalado com
Isso significa que os arquivos git repo não diferenciam maiúsculas de minúsculas. Para alterar isso, você precisa executar:
você pode encontrar essa configuração no arquivo .git \ config
fonte
Copiei a origem remota
url
de outro.git/config
arquivo, fazendo assim o meu novo.git/config
arquivo estivesse ausente na linha a seguir na[remote "origin"]
seçãoAdicionando linha acima corrigida
error: pathspec 'master' did not match any file(s) known to git.
fonte
Eu tive o mesmo problema. Pensei que tinha um nome de filial
foo
quando tento:Eu estava conseguindo:
Então tentei o nome completo da filial:
então trabalhou para mim.
fonte
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.
fonte
git mv
. Acho que você já fez isso desta forma, porque fazê-lo através do meu IDE (IntelliJ PhpStorm) falhou para mim ...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 como
error: 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>
.fonte
Eu encontrei esse mesmo problema quando estava brincando com o git. Ao tentar meu primeiro commit ...
Eu recebi o erro mencionado pelo OP ...
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 ...
Isso acabou sendo bem-sucedido ...
fonte
Eu cometi um erro bobo de não fornecer a bandeira -m ao confirmar (lol acontece)
fonte
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
salve isso como
switchbranch.sh
Em seguida, use-o no terminal
./switchbranch.sh PRJ-1234
fonte
Nenhuma dessas respostas resolveu meu problema:
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.Como mostrado acima, para códigos de hash parciais, você deve fornecer o front-end, não o back-end.
fonte
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.
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
e o problema se foi
fonte
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.
fonte
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.
fonte
verifique se não é um erro de digitação no nome do arquivo de destino. Eu estava tentando encenar digitando
Mas eu não percebi que estava usando dois pontos Mas então eu digito
Funciona
fonte
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 fetch
lançou o seguinte erro:Tudo o que eu precisava fazer era forçar meu IDE (código VS no meu caso) a lembrar minhas credenciais:
O Git sincronizou imediatamente todas as alterações e
git checkout <branche>
funciona bem agora!fonte
Eu estava recebendo o mesmo
pathspec error
no git-bash. Eu usei o Tortoise git no Windows para alternar / fazer checkout do ramo.fonte