2016-04-11 19 views
2

ローカルリポジトリに複数のファイルが含まれているとします。ファイルの特定のコミットのチェックアウト中に、リポジトリ内の他のファイルが削除されました。私は、次のAPIを使用していますJGitを使ってファイルを特定のコミットにリセットするには?

gitはgitリポジトリのインスタンスである)

git.checkout().setName(commitId).call() 

は、特定のファイルの特定のコミットをチェックアウトするには、この正しい方法ですか?

答えて

1

setName()のJavadocは

語ります0

パスをチェックアウトしてブランチを切り替えない場合は、setStartPoint(}を使用して、ファイルをチェックアウトするブランチまたはコミットを指定します。

そしてaddPath()ことは述べて:このオプションが設定されている

場合は、どちらsetCreateBranch()setName()オプションが考えられています。つまり、これらのオプションは排他的です。

したがって、私はあなたが私たちは関数addpath(ファイル名)を使用している場合は、それはSETNAME(commitId)を考慮していない...コミット最新の更新された

git.checkout().addPath(...).setStartPoint(...).call(); 
+0

)(あなたはサイコーmuch..itちなみにリュディガー –

+0

@作業、我々は\t \t \t \t \t git.checkout()setAllPaths(真).setStartPoint(Constants.HEAD)は.callを使用することができますありがとうございました。最新のリビジョンですべてのファイルをチェックアウトしました...ありがとう –

+0

私よりも正確な答えです。 +1 – VonC

1

あなたの呼び出しは、あなたがあなたの場合はjgit/porcelain/RevertChanges.java

// revert the changes 
git.checkout().addPath(fileName).call(); 

でより正確な例を探すことができますインデックスをリセットしない(とあなたがチェックアウト新しいコミットにはもはや存在するファイルを削除することができます)

git.checkout().setname(commitId).addPath(fileName).call() 
+0

を使うべきだと思います。@ VonC –

+0

@RenganathanSelvarajuことそれから報告するバグかもしれません。 – VonC

関連する問題