No estoy seguro de por qué no puedo pagar una sucursal en la que había trabajado anteriormente. Vea los comandos a continuación (nota: co
es un alias 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.
No estoy seguro de lo que significa, y parece que no puedo encontrar nada que pueda entender en Google.
¿Cómo pago esa rama y qué puedo haber hecho para romper esto?
ACTUALIZACIÓN :
Encontré esta publicación , y correr git show-ref
me da:
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
ACTUALIZAR en el .git
directorio ( user_controlled_site_layouts
está en el 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
ACTUALIZAR en 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
pero no aparecegit show-ref
. ¿Existe.git/refs/heads/feature/user_controlled_site_layout
realmente el archivo ? Si es así, ¿quécat .git/refs/heads/feature/user_controlled_site_layout
da?Respuestas:
Intente
git fetch
para que su repositorio local obtenga toda la información nueva de github. Solo toma la información sobre nuevas sucursales y no hay código real. Después de eso,git checkout
debería funcionar bien.fuente
git fetch
es útil cuando necesita sincronizar su repositorio local con el repositorio remoto, pero no desea fusionar los cambios en su carpeta de trabajo.git checkout Branch
no funciona. Con múltiples controles remotos, solo el nombre de Branch es ambiguo y requiere la especificación de remote / branch. El comandogit checkout -b branch remote/branch
funciona en ese escenario.git fetch
Podría hacer el trabajo. Pero puede fallar al obtener todas las ramas del control remoto. Debería establecer el patrón de coincidencia de búsqueda.git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"
consulte: stackoverflow.com/questions/11623862/…Recibí este error cuando intenté pagar una nueva rama:
Cuando lo intenté
git checkout origin/<BRANCH-NAME>
, obtuve el HEAD separado:Finalmente, hice lo siguiente para resolver el problema :
fuente
git checkout --track origin/staging fatal: git checkout: --track and --no-track require -b
git versión 1.5.6.5git checkout -b staging --track origin/staging
Recibí este error para una rama que era remota y no tenía una rama de seguimiento local. Aunque estoy seguro de que he verificado sucursales remotas a través de un simple
en el pasado, para evitar este error tuve que
Tampoco tengo idea de lo que hice para meterme en esa situación.
fuente
fetch = +refs/heads/*:refs/remotes/origin/*
línea para que coincida con el nuevo nombre remoto. Jajaja Tal vez esto le pasó a makandra? porque después de arreglarlo, revisar la rama una vez más lo obtiene del origen, a pesar de que tengo muchos controles remotos.Si eliminó una rama con
git branch -D yourbranchname
y retiró / clonó nuevamente su repositorio, es posible que deba crear su rama local nuevamente.Tratar:
fuente
Tengo las mismas preguntas y obtuve información de este enlace: git fetch no recupera todas las ramas
Entonces, ahora, no estoy seguro de cómo sucedió esta situación, al menos podemos resolverlo:
Paso 1. Verifique su configuración "remote.origin.fetch", debería ser así
Paso 2. Cambia "remote.origin.fetch" para buscar todo
Luego, puede intentar "git pull" (tal vez "git fetch origin" también funciona pero no lo intenté) para obtener toda la rama.
fuente
Tenga cuidado con los usuarios de Git Windows: sin la configuración var
--icase-pathspecs
oGIT_ICASE_PATHSPECS = 1
env , las git pathpecs distinguen entre mayúsculas y minúsculas, en cuyo casono es lo mismo que
fuente
--icase-pathspecs
parámetro debe venir primero o al menos antes-C <path>
Si el nombre de la sucursal no tiene ningún archivo sin confirmar, intente esto
fuente
Enfrenté el problema mientras cambiaba mi sucursal.
Hice un tirón en la rama actual y luego traté de pagar la nueva y funcionó
git pull // on your old branch git checkout <new_branch>
fuente
git pull
más que tirar de la rama actual?Eso simplemente lo arregló para mí :)
fuente
Tengo el mismo problema porque lo usé
git clone --depth=1
, lo que implica--single-branch
.Hacer un completo
git clone
lo arreglará.fuente
Obtuve esto cuando hice lo siguiente:
Cuando traté de registrarme en el directorio, recibí este error.
Arreglar:
Abrí el repositorio en extensiones de git. Vi que el archivo (con el antiguo nombre) estaba en escena. Pero como ya no existía, no podía ser cometido.
Simplemente eliminé este archivo.
Luego volví a agregar el archivo (esta vez con el nombre correcto) en git y lo comprometí sin errores.
fuente
Tuve este problema hoy que estaba tratando
git checkout foo
y conseguíerror: pathspec 'foo' did not match any file(s) known to git.
Resulta que estaba en el repositorio equivocado . Entonces, la lección aprendida: verifica qué repositorio estás viendo antes de volverte loco.
fuente
Recibí este error al intentar pagar una sucursal a través de:
que no había comprobado antes. Solo funcionó cuando se indica explícitamente el control remoto:
La razón de esto fue que tenía 2 controles remotos diferentes (origen + algo más) configurados en git config. Como no necesitaba el segundo control remoto, lo quité y listo, funcionó. La alternativa para configurar el control remoto predeterminado a través de:
no funciono para mi
fuente
Primero, pague la rama principal. Luego escriba
¡Espero eso ayude!.
fuente
Lo arreglé modificando mi archivo de configuración de git. Comprueba tu archivo de configuración en tu directorio de git.
.git\config
Anteriormente tenía
Lo arreglé modificándolo a
Observe que la cabeza apuntaba a una sola rama, por lo que no pudo encontrar la referencia a otras ramas existentes, la cambié a * para que verifique todo en origen.
fuente
En el sistema operativo Windows, por defecto, git se instala con
Esto significa que los archivos git repo no distinguen entre mayúsculas y minúsculas, para cambiar esto debe ejecutar:
puedes encontrar esta configuración en el archivo .git \ config
fuente
Copié el origen remoto
url
de otro.git/config
archivo, por.git/config
lo que faltaba mi nuevo archivo siguiendo la línea en la[remote "origin"]
secciónAñadiendo la línea superior fija
error: pathspec 'master' did not match any file(s) known to git.
fuente
Tuve el mismo problema. Pensé que tenía una rama nombrada
foo
cuando intento:Yo estaba consiguiendo:
Luego probé el nombre completo de la rama:
Entonces trabajó para mí.
fuente
Si ocurre en Windows, probablemente sea el problema del caso del nombre de archivo.
Hoy tuve este error: creé un nuevo archivo, lo agregué a GIT, luego cambié una letra en el nombre del archivo de menor a mayor y luego no pude hacer nada: confirmar, revertir, eliminar el archivo del repositorio.
La única solución que encontré fue cambiar el nombre del archivo nuevamente al mismo caso exacto cuando agregué este archivo a GIT, luego hice GIT revertir para eliminar este archivo de GIT, y luego cambié el nombre de archivo nuevamente como quisiera. Después de esos cambios, podría comprometerme con el repositorio y luego presionar sin ningún problema.
fuente
git mv
. Supongo que lo has hecho de esta manera, porque hacerlo a través de mi IDE (IntelliJ PhpStorm) falló para mí ...En mi caso tengo DOS rama 1) maestro (que es para el servidor en vivo) 2) dev (servidor de prueba). Había configurado múltiples controles remotos para insertar código en el servidor respectivo. Cuando intenté cambiar de rama recibí el error como
error: pathspec 'master' did not match any file(s) known to git.
Puedes verlos por
git remote -v
. Había eliminado otro control remoto, excepto elorigin
control remotogit remote remove <remote-name>
Entonces
git fetch
Ahora puedo pasar por sucursal
git checkout <branch-name>
.fuente
Encontré este mismo problema cuando estaba jugando con git. Al intentar mi primer compromiso ...
Recibí el error mencionado por el OP ...
Pensé que podría haber estado confundiendo a git al usar una palabra clave en el mensaje de confirmación, así que probé algunas otras palabras y recibí el mismo error.
Finalmente usé comillas dobles en el mensaje ...
Esto resultó ser exitoso ...
fuente
Cometí un error tonto al no proporcionar la bandera -m mientras cometía (lol sucede)
fuente
Tuve una causa raíz diferente
Tenía un script que básicamente busca todas las ramas que coinciden con la clave de problema jira en el "PRJ-1234" entre todas las ramas para ejecutar un comando de pago de rama git en la rama coincidente
El problema en mi caso era que 2 o más ramas compartían la misma clave jira y, por lo tanto, mi script falló con el error mencionado anteriormente
Al eliminar la rama antigua no utilizada y asegurarse de que solo una rama tuviera la referencia de clave jira solucionó el problema
Aquí está mi código en caso de que alguien quiera usarlo
guarda esto como
switchbranch.sh
Luego úsalo desde la terminal
./switchbranch.sh PRJ-1234
fuente
Ninguna de estas respuestas resolvió mi problema:
Estaba tratando de regresar y construir el commit para
Version object v2.0.1
. Afortunadamente, tuve la idea de probar todo el código hash y funcionó. Lo que significa que estaba usando el extremo incorrecto del código hash.Como se muestra arriba, para códigos hash parciales, debe suministrar el front-end, no el back-end.
fuente
Me pasó después de cambiar el nombre de un archivo no confirmado en Android Studio.
Git parecía tener la versión anterior en su repositorio, incluso si ya no existía.
Entonces abrí la GUI Git de TortoiseGit que me mostró el archivo exacto que causó problemas.
Luego eliminé el archivo del repositorio con
y el problema se fue
fuente
En mi caso, cambié el nombre de un archivo cambiando el caso del archivo, es decir, SomeFile.js -> someFile.js
Creo que eso estaba relacionado con el problema. Hacer una búsqueda de git no solucionó el problema.
Saqué los archivos de mi proyecto, hice una búsqueda e hice un empuje sin ellos. Luego hice una búsqueda, los agregué de nuevo, e hice un empujón, y funcionó. No sé si todos esos pasos fueron necesarios, pero finalmente funcionó.
fuente
en mi caso entro al directorio de submódulos sin hacer
git submodule init
git submodule update
Entonces git estaba vinculado a la carpeta principal que de hecho perdió esa rama.
fuente
compruebe si no es un error tipográfico en el nombre del archivo de destino. Estaba intentando representar escribiendo
Pero no me di cuenta de que estaba usando dos puntos Pero luego escribí
Funciona
fuente
Para mí, fue un problema con mis credenciales.
Después de probar algunas de las respuestas, una de ellas me ayudó a resolver el problema:
Correr
git fetch
arrojó el siguiente error:Todo lo que tuve que hacer fue forzar mi IDE (VS Code en mi caso) para recordar mis credenciales:
Git inmediatamente sincronizó todos los cambios, ¡y
git checkout <branche>
funciona bien ahora!fuente
Estaba obteniendo lo mismo
pathspec error
en git-bash. Usé Tortoise git en Windows para cambiar / pagar la rama.fuente