Tengo un commit xyz en mi sucursal local que deseo verificar si está incluido en un repositorio de versiones remoto; ¿Puedo hacer eso de alguna manera fácil? Podría clonar el repositorio remoto, pero espero una manera más agradable + más rápida. git ls-remote
parecía prometedor, pero no encontró nada de valor para mí allí. ¡Gracias!git: verificar si commit xyz en repositorio remoto?
Respuesta
Supongamos que el control remoto que se refiere al repositorio remoto se llama origin
. En ese caso, actualice primero todas sus ramas de seguimiento a distancia con:
git fetch origin
Ahora puede utilizar la opción útil --contains
a git branch
para averiguar cuál de las ramas remotas contiene ese cometer:
git branch -r --contains xyz
(El -r
significa que solo se muestran las ramas de seguimiento remoto). Si la confirmación xyz
está contenida en una o más de sus sucursales de seguimiento remoto, verá resultados como:
origin/test-suite
origin/HEAD -> origin/master
origin/master
Si está contenido en su repositorio local, pero no en una de las sucursales de seguimiento remoto, la salida estará vacía. Sin embargo, si no se conoce en su repositorio en absoluto, que obtendrá el error malformed object name
y un mensaje de uso que se comprometen - tal vez un poco confuso si no lo esperas ...
igual que Mark dijo ,
git branch -a --contains commitish
Sin embargo, tenga cuidado para las ramas que contienen una versión palmitas/porcentualizada/fusionado de la confirmación.
Esto podría ser útil
git log --cherry-pick --left-right <commitish> ^remote/branchname
Enumerará el commit SOLAMENTE si no existe (como escoja a) en la rama remota. Consulte la página del manual de registro para obtener una explicación sobre cómo --cherry-pick identifica equivalente compromete
Por supuesto fusiona/rebases con la resolución de conflictos o calabazas no se puede detectar automáticamente como esto
- 1. función Bash/Shell Script para verificar que la etiqueta Git o Commit existe y se ha enviado al repositorio remoto
- 2. Indicando si un commit Git es un commit Merge/Revert
- 3. revirtiendo push'd git commit
- 4. Git: ¿Cómo verificar si un repositorio local está actualizado?
- 5. Commit diferencias entre local y remoto
- 6. submódulo o sub-repositorio Git o remoto?
- 7. Reemplazando el repositorio remoto de git con mi repositorio
- 8. Bad commit to Git
- 9. Git clone versión particular del repositorio remoto
- 10. ¿Cómo verificar los cambios en el repositorio de Git remoto (origen)?
- 11. git: push a single commit
- 12. git commit directorio
- 13. Modificación de un commit de Git en un repositorio compartido
- 14. repositorio Git remoto se niegan fusionar compromete el impulso
- 15. Cómo comprometerse con el repositorio remoto de git
- 16. crear una referencia simbólica git en el repositorio remoto
- 17. Cómo revertir el repositorio remoto simple en git
- 18. No se puede enviar al repositorio remoto de git
- 19. Cómo insertar un nuevo historial (reescrito) en un repositorio remoto
- 20. añadir un repositorio local como un subdirectorio del repositorio remoto
- 21. ¿Es posible vaciar por completo un repositorio remoto de Git?
- 22. Git eliminar commit raíz
- 23. Cómo presionar al repositorio después de hacer 'commit git --amend'
- 24. ¿Cómo eliminar la carpeta eliminada del repositorio remoto en Git?
- 25. ¿Cómo descargo un commit específico de git desde un repositorio?
- 26. ¿Es git commit -am redundante, si hago git add before?
- 27. Cómo muevo mi repositorio de Git local a un repositorio de Git remoto
- 28. git: eliminar 2nd commit
- 29. Cómo activar el comando remoto si el remoto no existe
- 30. git: sincronizar el repositorio local con el remoto
¿Hay una manera de hacer esto con git fontanería? –
@dpk: Probablemente iteraría sobre las ramas de seguimiento remoto con 'git for-each-ref' y probaría si la confirmación está contenida en cada rama comprobando si' git merge-base 'es lo mismo que' '. –