git - sig - ¿Cómo puedo "deshacer" un clon de una sola rama?
github sin in (3)
Puedes decirle a Git que tire de todas las ramas de esta manera:
git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"
git fetch origin
Si miras en .git/config
, se verá más o menos así:
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
ignorecase = true
precomposeunicode = false
[remote "origin"]
url = https://github.com/owner/repo.git
fetch = +refs/heads/master:refs/remotes/origin/master
[branch "master"]
remote = origin
merge = refs/heads/master
rebase = true
Lo comparé con un clon completo, y vi que la única diferencia era la "búsqueda" en [remote "origin"]
.
Nota: estoy ejecutando la versión 1.8.2 de Git. Las opciones de configuración pueden haber cambiado si está ejecutando una versión anterior de Git. Si mis comandos no funcionan, recomiendo buscar en .git/config
para ver si puede ver algo similar.
Cloné un repositorio usando el
git clone -b <branch name> --single-branch <github url> <target directory>
Esto clonó SOLAMENTE esta rama, pero ahora quiero cambiar al maestro y otras ramas. ¿Hay alguna manera además de borrarlo y empezar de nuevo a clonar el resto del repositorio de que puedo deshacer la preferencia de una sola rama?
Si desea agregar una sola rama, puede hacer lo siguiente:
git remote set-branches --add origin [remote-branch]
git fetch origin [remote-branch]:[local-branch]
Funciona con la versión de Git 1.9.1
Simplemente agregue el repositorio original como un nuevo control remoto, ¿y trabaje fuera de allí?
git remote add path/to/myrepo myNewOrigin
git fetch myNewOrigin
Incluso puede eliminar su control remoto de ''origen'' actual y cambiarle el nombre ''myNewOrigin'' a ''origen'' si lo desea.
Desde allí puedes extraer / fusionar / rebasear.