gpt4 book ai didi

java - 使用 jGit 将文件推送到远程仓库

转载 作者:行者123 更新时间:2023-12-05 05:09:41 25 4
gpt4 key购买 nike

我需要使用 jGit 以编程方式将文件从不同的本地存储库推送到托管在 Github 上的一个远程存储库。下面的代码无一异常(exception)地工作,但在 Github 中没有任何更改。

我程序中的每个用户定义的“组”在另一个名为 data 的文件夹下都有自己的文件夹。每个组文件夹都包含一个名为 repo 的文件夹,其中包含一个 html 和 css 文件。到时候我需要把这两个文件push到github上。

文件夹结构如下:

program (folder)
[reciter.jar]
[start.bat]
data (folder)
<group 1> (group folder)
repo (group specific repository folder)
[resultsFile.html]
[styleFile.css]
<another group> (group folder)
... (omitted)

这是我需要做的:我想让一个存储库成为一个 Github。 (完成:https://github.com/Skultrix/reciter.git)当一个小组将他们的文件推送到 Github 时,我需要它们按以下顺序排列:

github's root
<group 1>
resultsFile.html
styleFile.css
<another group>
resultsFile.html
styleFile.css

意思是,如果我想访问“另一个组”的 html 文件,路径将是 another_group/results.html。

这是我用 jGit 尝试过的:

    public void load() {
try {
git = Git.init().setGitDir(group.getDataManager().getRepoDirectory()).call();
} catch (Exception e) {
e.printStackTrace();
}
}
//load() is always before sendFile()
public void sendFile() {
LoadingModal.showModal(main, () -> {
try {
System.out.println("adding");
git.add()
.addFilepattern("resultsFile.html")
.call();
System.out.println("commiting");
git.commit()
.setAll(true)
.setMessage("Update results")
.call();
System.out.println("remote adding");
git.remoteAdd()
.setName("origin")
.setUri(new URIish("https://github.com/Skultrix/reciter.git"))
.call();
System.out.println("pushing");
git.push()
.setRemote("https://github.com/Skultrix/reciter.git")
.setCredentialsProvider(
new UsernamePasswordCredentialsProvider("skultrix", <my password>)
)
.call();
System.out.println("finish");
} catch (Exception e) {
e.printStackTrace();
}
}, "Uploading results to site.", true).run();
}

当执行上面的代码(#sendFile)时,控制台打印:

adding
commiting
remote adding
pushing
finish

但是当我检查 github 时,没有任何改变,甚至没有进行空提交。也没有异常或错误。

感谢您提前提供任何帮助或指导。

最佳答案

您可能需要添加该文件的路径(不仅仅是它的名称),如in this example

adder.addFilepattern(getPath(fileVersion.getFile(), repository));

路径可以是relative to the repository , 所以 <group 1>在你的情况下。

关于java - 使用 jGit 将文件推送到远程仓库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57349928/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com