我需要使用jGit编程从不同的本地代码库推送文件到托管在Github上的一个远程代码库。以下代码没有异常,但是Github上的内容没有发生任何更改。
我的程序中每个用户定义的“组”都有一个在另一个名为data的文件夹下的自己的文件夹。每个组文件夹包含一个名为repo的文件夹,其中包含一个html和css文件。当时机成熟时,我需要将这两个文件推送到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时,什么都没有改变,甚至连空提交也没有。也没有任何异常或错误。
提前感谢任何帮助或指导。
git remote -v
URL 链接到远程仓库:您只需要一个本地仓库,因为您将在那里进行的提交历史必须与远程仓库的相同并完整的提交集匹配。 - VonC