origin/mybranchからmybranchをリベースしようとしています。私はこのコードを使用しています:これをやった後JGit rebaseはローカルファイルを保持し、競合ファイルリストを取得します
git.pull().setRebase(true).setRemoteBranchName(branch).call();
を、競合するファイルは、分岐
に基づいて上流、
< < < < < < <のようなコメントで更新取得されていますコミットしてもリポジトリの内容が上書きされるようになりました私のローカルな変更をしました。
コマンドプロンプトでgitコマンド "git rebase"を実行しようとしたときにこの関数を呼び出すのではなく、ローカルファイルが更新されないので問題ありません。
その後、私は、この後
InteractiveHandler handler = new InteractiveHandler() { @Override public void prepareSteps(List<RebaseTodoLine> steps) { for(RebaseTodoLine step : steps) { try { step.setAction(Action.EDIT); } catch (IllegalTodoFileModification e) { throw new IllegalStateException(e); } } } @Override public String modifyCommitMessage(String oldMessage) { return oldMessage; } }; git.rebase().setUpstream("origin/"+branch).runInteractively(handler).call();
を以下のリンクのアプローチを試みたが、私はリベースの私のローカル変更を保持することができましたが、競合するファイルは現在、リモートリポジトリの値で上書きなっています。
また、RebaseResultの "競合リスト"と "失敗したパスマップ"がnullであるため、更新されたファイルも見つからないためです。
ここで何か間違っているのですか、それともJGitの問題ですか。私は適切なドキュメントも手に入れませんでした。
2番目の質問(InteractiveHandlerを使用したリベース)について:自己完結型スニペットがないと、なぜrebaseがそれをするのかを知ることは不可能です。 –