tl;博士 JGit checkout在命令行git checkout正常工作时抛出异常
我目前正在尝试使用JGit从Java(用于工作)检查来自在线Git存储库的某些修订.我目前的方法是(我对Git很新,来自SVN背景,所以这可能是错的):
基本上,我希望能够将临时文件夹的内容与任何修订版交换.使用命令行界面我已经能够使用git checkout master和git checkout dylanbranch(其中dylanbranch是我在我自己的克隆上使用任意选择的版本制作的分支),但是我的Java代码试图做同样的事情失败:
Git git = Git.open(new File("checkout")); //checkout is the folder with .git
git.checkout().setName("master").call(); //succeeds
git.checkout().setName("dylanbranch").call(); //fails
Run Code Online (Sandbox Code Playgroud)
并且打印到控制台的例外:
Exception in thread "main" org.eclipse.jgit.api.errors.JGitInternalException: Checkout conflict with files:
src/sizzle
test/qunit
at org.eclipse.jgit.api.CheckoutCommand.call(CheckoutCommand.java:211)
at com.avi.scm.git.BranchCheckout.main(BranchCheckout.java:30)
Caused by: org.eclipse.jgit.errors.CheckoutConflictException: Checkout conflict with files:
src/sizzle
test/qunit
at org.eclipse.jgit.dircache.DirCacheCheckout.checkout(DirCacheCheckout.java:387)
at org.eclipse.jgit.api.CheckoutCommand.call(CheckoutCommand.java:162)
... 1 more
Run Code Online (Sandbox Code Playgroud)
我可以验证有问题的文件是否被标记为已删除,而不是通过使用进行提交,git status虽然我不确定为什么会有这些更改,并且它们会在我切换回主分支时返回.尽管如此,我仍然可以使用命令行Git成功更改工作树.
所以我的问题:为什么JGit在命令行git时不能用于这个应用程序?感谢任何其他有用的信息 - 教育我:)
更新我一直在使用jQuery存储库进行测试,并注意到JGit的一些问题:当我使用"master"分支时,git statustemms me我就是#On branch master那个nothing to commit (working directory clean),但是使用JGit的状态命令我看到了那test/qunit并src/sizzle标记为Missing.JGit的重置似乎什么都不做.
| 归档时间: |
|
| 查看次数: |
6899 次 |
| 最近记录: |