ローカルリポジトリに複数のファイルが含まれているとします。ファイルの特定のコミットのチェックアウト中に、リポジトリ内の他のファイルが削除されました。私は、次のAPIを使用していますJGitを使ってファイルを特定のコミットにリセットするには?
(git
はgitリポジトリのインスタンスである)
git.checkout().setName(commitId).call()
は、特定のファイルの特定のコミットをチェックアウトするには、この正しい方法ですか?
ローカルリポジトリに複数のファイルが含まれているとします。ファイルの特定のコミットのチェックアウト中に、リポジトリ内の他のファイルが削除されました。私は、次のAPIを使用していますJGitを使ってファイルを特定のコミットにリセットするには?
(git
はgitリポジトリのインスタンスである)
git.checkout().setName(commitId).call()
は、特定のファイルの特定のコミットをチェックアウトするには、この正しい方法ですか?
setName()
のJavadocは
パスをチェックアウトしてブランチを切り替えない場合は、
setStartPoint(}
を使用して、ファイルをチェックアウトするブランチまたはコミットを指定します。
そしてaddPath()
ことは述べて:このオプションが設定されている
場合は、どちら
setCreateBranch()
もsetName()
オプションが考えられています。つまり、これらのオプションは排他的です。
したがって、私はあなたが私たちは関数addpath(ファイル名)を使用している場合は、それはSETNAME(commitId)を考慮していない...コミット最新の更新された
git.checkout().addPath(...).setStartPoint(...).call();
あなたの呼び出しは、あなたがあなたの場合はjgit/porcelain/RevertChanges.java
// revert the changes
git.checkout().addPath(fileName).call();
でより正確な例を探すことができますインデックスをリセットしない(とあなたがチェックアウト新しいコミットにはもはや存在するファイルを削除することができます)
:
git.checkout().setname(commitId).addPath(fileName).call()
を使うべきだと思います。@ VonC –
@RenganathanSelvarajuことそれから報告するバグかもしれません。 – VonC
)(あなたはサイコーmuch..itちなみにリュディガー –
@作業、我々は\t \t \t \t \t git.checkout()setAllPaths(真).setStartPoint(Constants.HEAD)は.callを使用することができますありがとうございました。最新のリビジョンですべてのファイルをチェックアウトしました...ありがとう –
私よりも正確な答えです。 +1 – VonC