2012-09-14 3 views
2

나는 힘내 인출의 개념을 이해한다. JGit API에서 FetchCommand 클래스를 통해 객체를 가져오고 싶습니다.JGit FetchCommand

나는 Git 저장소가 있습니다. 예 : C:\jGit\.git.

나는이 저장소를 복제했습니다. 예 : C:\jGitClone\jGit\.git.

이 저장소를 다시 복제했습니다. 예 : C:\Users\user\Desktop\jGitClone\.git. 나는 망할 놈의 클래스를 가지고있는 JGit API를 사용하여

:

Git git = new Git(repository); // this is the cloned repository. C:\jGitClone\jGit\.git 

어떻게 것 I는이 저장소로 가져올 수 알고이라고 그래서 가져 바탕 화면에 복제 된 저장소를 설정합니다.

아래의 1을 포함하여 일부 웹 사이트를 살펴 보았지만 여전히 고생했습니다.

Git fetch failing using jgit: Remote does not have <branchname> available for fetch

답변

1

나는 당신이 뭔가를 놓친 것 같아요. Git/jGit에서 로컬 복사본은 path (파일 시스템에서와 같이)에 의해 결정되고 remote은 먼 레포 (repo)입니다.

귀하의 데스크톱 복제본에 jGitClone/jGit 리포에 대한 링크가 있어야합니다. 먼저 복제가 완료되면 데스크톱 repo는 원격 repo에 대해 알고 있습니다. 데스크탑의 repo이 어디 코드에서 그래서, 당신은 말할 필요 :

Builder builder = new FileRepositoryBuilder() 
Git repo = builder.setGitDir(new File("C:\Users\user\Desktop\jGitClone.git")) 
    .readEnvironment() 
    .build() 
코드는 직접 (내가 가지고있는 의심이 제공 할 수있는 경로에있는, 그것을 테스트하지 않고 작동하지 않을 수

) Builder, Git을하지만 그것은 내가 도움이 될 것입니다 생각이 대답을 기반으로 : 오브젝트가 사용하는 당신은 이미 모든 것을 복제 않았거나 당신이 원하는 그 것이다 : 그런데 JGit and finding the Head

을, 귀하의 질문은 명확하지 않다 할 것? 귀하의 코드에서 당신은 repository 언급 : 내가 제안했던 것과 비슷한 코드를 사용하여 얻었습니까? 선택한 이름은 분명하지 않습니다. jGit 소스 코드가 포함되어 있지 않으면 repo jGit을 호출하면 약간 번잡합니다. 또한 다른 리포지토리 (A, B, C)에 이름을 지정하여 명확하게 이해할 수 있습니다.

관련 문제