JGit-将特定文件推送到RemoteRepo

JGit-将特定文件推送到RemoteRepo,git,egit,jgit,Git,Egit,Jgit,我到现在为止所做的是- 从远程回购中克隆。 在我的项目中的特定目录中添加了一个文件,并对该文件进行了一些更改 提交文件 尝试将更改推送到远程回购 //它向我显示一条空消息,状态为OK,但文件没有被推送到远程Repo 另一个问题是,当我试图打印推送消息时,它会无限打印-Msg-null-Status-OK-refs/heads/master 私有静态最终字符串远程\u URL=http://abc.def.net/git/scm/nt/myprojectname.git 字符串srcPath=D:

我到现在为止所做的是-

从远程回购中克隆。 在我的项目中的特定目录中添加了一个文件,并对该文件进行了一些更改 提交文件 尝试将更改推送到远程回购 //它向我显示一条空消息,状态为OK,但文件没有被推送到远程Repo

另一个问题是,当我试图打印推送消息时,它会无限打印-Msg-null-Status-OK-refs/heads/master

私有静态最终字符串远程\u URL=http://abc.def.net/git/scm/nt/myprojectname.git 字符串srcPath=D://MyFiles//fol//ErrorFile.txt; //为克隆的存储库准备新文件夹 File localPath=File.createTempFileTestGitRepository; localPath.delete; //然后克隆 System.out.println从+REMOTE_URL+克隆到+localPath; CredentialsProvider cp=新用户名密码CredentialsProviderMySerName,mypassword; Git Git=Git.cloneRepository.setURIREMOTE_URL.setDirectorylocalPath.setcredentialsvrovidercp.call; 字符串头=git.getRepository.getFullBranch; 如果head.startsWithrefs/heads/{ //打印带有参考/标题/剥离的分支名称。 System.out.println当前分支为+git.getRepository.getBranch; } 字符串destPath=localPath+\\myprojectName\\; File srcFile=新的FilesrcPath; File destFile=新文件destpath; FileUtils.copyFileToDirectorysrcFile,destFile,true; git.checkout;//我刚才没听到这句话 //运行add调用 git.add.setUpdatetrue.addFilepatterndestFile.getAbsolutePath.call; RevCommit RevCommit=git.commit.setMessageMy First commit.call; System.out.printlnrevCommit.getShortMessage; Iterable resultIterable=git.push.setCredentialsProvidercp.call; whileResulterable.iterator.hasNext{//导致无限循环 PushResult=resultIterable.iterator.next; 集合rs=result.getRemoteUpdate; 用于远程重新更新rf:rs{ System.out.printlnMsg-+rf.getMessage+-Status-+rf.getStatus+-+rf.getSrcRef; } } 试一试{ System.out.printlnHaving repository:+git.getRepository.getDirectory; }最后{ git.getRepository.close; }
您的文件未提交,因为您需要指定要提交的文件。就你而言

git.commit().setAll(true) 
应该可以工作,它相当于git commit-a

我也让它工作了-

CommitCommand commit = git.commit();
for (String file : files) {
    commit.setOnly(file);
}
commit.setMessage(message).call()

检查你的gitignore。文件或它的一个祖先文件夹在那里吗?使用Git,您不推送文件,而是推送提交。您是如何确定刚才创建的提交从未在目标git中结束的?@MagnusBäck,您也可以推送文件,即您正在创建一个文件,添加它,提交并推送它。是的。。。我添加了文件,然后提交,然后执行推送。。。但是当我再次克隆的时候。。新克隆中不存在该文件。意味着文件还没有被推送。哦。。我错过了git.checkout;在git.commit之前;现在正在添加该文件。剩下的唯一问题是-为什么在我尝试打印推送结果==System.out.printlnMsg-+rf.getMessage+-Status-+rf.getStatus+-+rf.getSrcRef时存在无限循环;