首页 > 解决方案 > 使用 JGIT 将更改推送到远程 Github 存储库

问题描述

我是 git 新手,我正在尝试将我提交的更改推送到 github 存储库。这是代码片段:

    Git git = Git.init().setDirectory(localPath).call();
    git.add().addFilepattern(".").call();
    git.add().setUpdate(true).addFilepattern(".").call();
    Status status = git.status().call();
    Set<String> added = status.getAdded();
    Set<String> uncommittedChanges = status.getUncommittedChanges();

    git.commit().setAllowEmpty(true).setAll(true).setNoVerify(true).setMessage(commitMessage).call();
    CredentialsProvider cp = new UsernamePasswordCredentialsProvider(username, password); 
    StoredConfig storedConfig = git.getRepository().getConfig();
    storedConfig.setBoolean( "http", null, "sslVerify", false );
    storedConfig.save();
    git.push().setRemote(gitURL).setCredentialsProvider(cp).call();

如果我使用新创建的 Github 存储库并提供该 gitURL,那么所有内容都会按预期推送。但是,如果我已经有一个现有的 Github 存储库,其中包含一些内容,这不会推送也不会引发任何错误。我什至尝试使用 setForcegit.push().setForce(true).setRemote(gitURL).setCredentialsProvider(cp).call() 但它会将新内容覆盖到我的 Github 存储库中,并且以前的内容会丢失。

我想知道我应该在此处进行哪些更改,以便将新更改推送到我的 Github 存储库并且该存储库的旧内容也保留?

标签: gitgithubpushgit-pushjgit

解决方案


推荐阅读