2017-04-17 8 views
0
FetchResult fr = git.fetch().setCredentialsProvider(credentials).setCheckFetchedObjects(true).Call(); 
git.checkout().setCreateBranch(true).setName("origin/" + branchName).setStartPoint("origin/" + branchName + "path/to/folder").call() 

これは私がリモートのリポジトリから1つのフォルダをチェックアウトするために使用しているコードです。 同等のgitコマンドは次のとおりです。JGitで特定のフォルダをチェックアウトする方法

git fetch origin 
git checkout origin/branch -- path/to/folder 

しかし、私のために動作しませんJavaコードは、私が唯一のローカルリポジトリを初期化し、リモートリポジトリを設定することができました。チェックアウトがうまくいかず、私は間違いを見つけられませんでした。

+0

[部分チェックアウトはJGit 3.7でサポートされていますか?](http://stackoverflow.com/questions/29505919/is-partial-checkout-supported-by-jgit-3-7) –

答えて

0

この

"origin/"

などのチェックアウト部分の変更を行う試してみて、それを試してみます。

そうでなければ、あなたがやりたいことがJGit(まばらなチェックアウト)で特定のフォルダをチェックアウトするためにsparse checkout

How do I implement sparse checkout in JGit?

+0

私はそれを試しましたが、役に立たない。また、私は、一意の枝から特定のフォルダをチェックアウトし、起点からまっすぐにチェックアウトするだけで、マージされたコード全体が得られるでしょうか?私はそれを望んでいません。 – sabari

+0

あなたがしたいことは、「スパースチェックアウト」だと思います。 Plsこのリンクを確認してください https://git-scm.com/book/en/v2/Git-Basics-Viewing-the-Commit-History – zachi

+0

@zachiスパースチェックアウトが私のために働いてくれてありがとう – sabari

0

で、あなたがチェックアウトするフォルダCheckoutCommandを伝える必要があります。例えば

:所定の経路の各々をチェックするために複数回呼び出すことができ

git.checkout().setName("branch-to-check-out").addPath("path/to/folder").call(); 

addPath()。パスは作業ディレクトリーを基準にして解釈されます。

関連する問題