base_sha fijado en la creación del worktree. Haz clic en él y se abre el BranchPicker.
La lista
Las branches vienen del git local, ordenadas por fecha del commit, la más reciente primero. Cada línea trae el nombre, el asunto del último commit y, si es remota, la etiquetaremote.
Lo que la lista hace por ti:
La branch actual viene con un ✓ verde.
El filtro es 200 branches, punto — las 200 más recientes. En un repo con un historial grande, la branch que quieres puede no estar en la lista, y ahí la caja de búsqueda no ayuda: filtra lo que ya vino, no va a buscar más.
watcher encuentra tanto fix/watcher como la branch cuyo último commit dice “fix: watcher en loop”.
Explorar
Hacer clic en la línea de una branch no cambia de branch. Pasa a ser lo que el panel muestra — el chip se pone violeta con su nombre, y el diff pasa a ser el trabajo de esa branch. El diff de exploración no esbase_sha..HEAD. Es:
base ‥ HEAD.
La base por defecto
La base de comparación se resuelve en este orden, y para en la primera que exista:1
origin/HEAD
La branch default del remoto. Es el caso normal de un repo clonado.
2
main, después master
Local. Vale cuando no hay remoto — o cuando el
origin/HEAD no está resuelto en tu clon.3
HEAD
Último recurso. Comparar contra sí mismo da un diff vacío, y eso es mejor que un error.
Un clon superficial, o hecho de una forma que no trajo el
origin/HEAD, cae en la main/master local. Si tu proyecto usa develop como base, la exploración va a comparar contra la main — no hay forma de configurar esto.Fetch
El icono de nube al lado de la búsqueda ejecuta:--prune hace que las remotas que murieron en el servidor desaparezcan de la lista.
Cambiar de branch
El checkout tiene puerta propia: el icono a la derecha de cada línea que no es la actual. Está armado en dos clics. El primero pone el icono en ámbar (“Click again to confirm the checkout”); el segundo ejecuta. Si no confirmas en 3 segundos, se desarma solo. Lo que pasa después:- Branch local →
git checkout <branch>. - Branch remota →
git checkout --track origin/<branch>, creando la local con tracking.
Nombres de ref
Todo nombre que sale del picker se valida antes de convertirse en argumento degit. Se rechaza lo que:
- está vacío;
- empieza con
-(-rfes una flag, no una branch); - contiene
..(a..bes un rango, no una branch); - tiene un espacio o un byte nulo.
for-each-ref, así que en la práctica pasan. La validación existe porque el IPC es una frontera: lo que llega ahí es entrada, no un hecho.
Qué no existe
- Crear una branch desde el picker. Una branch nace con el worktree, derivada del título de la task.
- Borrar una branch desde el picker. La branch
tyba/…se borra junto con el worktree, en el flujo posterior a la entrega. - Configurar la base por defecto. Es
origin/HEAD→main→master→HEAD, y ya. - Fetch automático. Red solo por clic.
- Push desde el picker. El push vive en la revisión, después de que hayas visto el diff.
Ver también
Leer el diff
El panel donde vive el picker.
Resolver conflictos
Cuando el merge para a mitad de camino.