Entiendo el concepto de Git fetch. Me gustaría search objects a través de la class FetchCommand en la API de JGit.
Tengo un repository de Git. Por ejemplo C:\jGit\.git
.
He clonado este repository. Por ejemplo: C:\jGitClone\jGit\.git
.
He clonado este repository de nuevo. Por ejemplo C:\Users\user\Desktop\jGitClone\.git
.
Usando la API de JGit tengo una class de Git:
Git git = new Git(repository); // this is the cloned repository. C:\jGitClone\jGit\.git
¿Cómo establecería el repository clonado que está en el escritorio para que cuando se llame a la recuperación sepa que busque en este repository?
He buscado en algunos sitios web, incluido el 1 a continuación, pero todavía está atascado.
Git fetch falla al usar jgit: Remote no tiene <branchname> disponible para search
Creo que te perdiste algo. en Git / jGit, una copy local está determinada por una path
(como en un sistema de files) y un remote
, que es un repository distante.
En su caso, desea que su repository clonado de escritorio tenga un enlace a su jGitClone/jGit
. Entonces, primero, si la clonación ya está hecha, entonces el repository de escritorio sabe acerca de su repository remoto. Entonces, en su código, solo necesita indicar dónde está su repository de escritorio:
Builder builder = new FileRepositoryBuilder() Git repo = builder.setGitDir(new File("C:\Users\user\Desktop\jGitClone.git")) .readEnvironment() .build()
Es posible que el código no funcione directamente (no lo probé, las dudas que tengo están en el path a dar, y los objects a usar: Builder
, Git
), pero está basado en esta respuesta que creo que te ayudará: JGit y encontrar la cabeza
Por cierto, su pregunta no es clara: ¿ya clonó todo o es lo que quiere hacer? en su código menciona un repository
: ¿lo obtuvo usando un código similar al que sugerí? Los nombres que eliges tampoco son muy claros: llamar a un repo jGit, a less que contenga el código fuente jGit, suena un poco torpe. Además, dé nombres a sus repositorys diferentes (A, B, C) para tener una comprensión más clara.