如何从 java api 推送到 gitlab
How to Push to gitlab from java api
我正在尝试将项目从 java 推送到 gitlab。我成功克隆了它,但无法推送更改(添加更多文件或向现有文件添加更多信息。)。代码没有任何错误,但在gitlab中没有更新。
这是我的代码
File localPath = File.createTempFile("TestGitRepository", "");
if(!localPath.delete()) {
throw new IOException("Could not delete temporary file " +
localPath);
}
Git git = Git.cloneRepository()
.setURI( REMOTE_URL )
.setDirectory(localPath)
.setCredentialsProvider( cp )
.call();
System.out.println("Cloning from " + REMOTE_URL + " to " + localPath);
// Git git=Git.open(dir);
File file = new File( git.getRepository().getWorkTree(), "file" + new Object().hashCode() );
System.out.println("hi");
file.createNewFile();
git.add().addFilepattern( file.getName() ).call();
git.commit().setMessage( "Add file " + file.getName() ).call();
git.push() .setCredentialsProvider( cp ) .call();
System.out.println("Pushed from repository: " + localPath + " to remote repository at " + REMOTE_URL);
这是使用 JGit
对于提交语法,使用 jgit/porcelain/CommitAll.java 食谱示例中的方法:
git.commit().setAll(true).setMessage("a message").call();
这相当于 git commit -a -m "a message"
我正在尝试将项目从 java 推送到 gitlab。我成功克隆了它,但无法推送更改(添加更多文件或向现有文件添加更多信息。)。代码没有任何错误,但在gitlab中没有更新。
这是我的代码
File localPath = File.createTempFile("TestGitRepository", "");
if(!localPath.delete()) {
throw new IOException("Could not delete temporary file " +
localPath);
}
Git git = Git.cloneRepository()
.setURI( REMOTE_URL )
.setDirectory(localPath)
.setCredentialsProvider( cp )
.call();
System.out.println("Cloning from " + REMOTE_URL + " to " + localPath);
// Git git=Git.open(dir);
File file = new File( git.getRepository().getWorkTree(), "file" + new Object().hashCode() );
System.out.println("hi");
file.createNewFile();
git.add().addFilepattern( file.getName() ).call();
git.commit().setMessage( "Add file " + file.getName() ).call();
git.push() .setCredentialsProvider( cp ) .call();
System.out.println("Pushed from repository: " + localPath + " to remote repository at " + REMOTE_URL);
这是使用 JGit
对于提交语法,使用 jgit/porcelain/CommitAll.java 食谱示例中的方法:
git.commit().setAll(true).setMessage("a message").call();
这相当于 git commit -a -m "a message"